반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

멋진 개발자가 되고 싶다

[LeetCode,Python] 739. 일일 온도(Daily Temperatures) 본문

Algorithm Study/leetcode

[LeetCode,Python] 739. 일일 온도(Daily Temperatures)

오패산개구리 2021. 7. 11. 14:44
728x90
반응형

매일의 화씨온도 리스트 T를 입력받아서,

더 따뜻한 날씨를 위해서는 며칠을 더 기다려야 하는지를 출력하라.

 

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

Output: [1,1,4,2,1,1,0,0]

 

 

 

 

** 깔끔한 답안 **

 

 

 

1. 스택 값 비교

 

 

1
2
3
4
5
6
7
8
9
10
11
12
class Solution:
    def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
        answer = [0* len(temperatures)
        stack = []
        for i, cur in enumerate(temperatures):
            #현재 온도가 스택 값보다 높다면 정답 처리
            while stack and cur > temperatures[stack[-1]]:
                last = stack.pop()
                answer[last] = i - last
            stack.append(i)
        
        return answer
cs

 

 

해설:

 

핵심은 현재의 온도가 전의 온도보다 높으면

answer에 값을 저장하고 stack에서 전의 온도 인덱스를 pop 하는 것이다.

 

이해가 어렵다면 인덱스와 온도 간의 그래프를 그려보는 것도 좋다.

728x90
반응형