본문 바로가기
알고리즘 문제/Leetcode

[Leetcode] 739. Daily Temperatures

by 햄과함께 2021. 11. 13.
320x100

문제 : https://leetcode.com/problems/daily-temperatures/


일별 온도 정수 배열이 주어지면 해당 날짜에서 볓 번째 날이 지났을 때 해당 날짜의 온도보다 더 높은 온도를 얻을 수 있는지 저장한 배열을 구하라. 만일 가능한 날이 없다면 0을 저장해라.


배열을 뒤에서부터 탐색하면서 stack에 탐색하는 일자의 온도보다 높은 온도만 존재하게 유지한다.

탐색하면서 만일 stack에 탐색 일자의 온도보다 높은 온도가 존재하지 않는다면 0, 존재한다면 stack의 top에 있는 온도의 인덱스에 현재 인덱스를 뺀 값을 정답 배열에 저장한다.

 

Ex)

temperatures = [73,74,75,71,69,72,76,73]

 

시간복잡도는 O(N)


소스코드

C++ : https://github.com/fpdjsns/Algorithm/blob/master/leetcode/medium/739.%20Daily%20Temperatures.cpp

python : https://github.com/fpdjsns/Algorithm-python/blob/main/leetcode/medium/739.%20Daily%20Temperatures.py

320x100

댓글