LC 739. Daily Temperatures

제론·2024년 2월 6일
0

[Algorithm] LeetCode💡

목록 보기
2/14
post-thumbnail

핵심은 현재 기준으로 얼마나 떨어져 있는지 판단하는 것
값을 비교하고 인덱스로 떨어진 정도를 알아낸다.

인덱스와 온도를 스택에 넣다가 더 따뜻한 값이 나왔을 때 res 배열 업데이트

class Solution:
    def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
        stack = []
        res = [0] * len(temperatures)
        
        # 값을 스택에 넣고
        
        # temperatures 반복문을 돌며 cur와 stack에 있는 온도를 하나씩 확인한다.
        
        # stack[-1]의 온도가 cur의 온도보다 낮은 경우(더 따뜻) 업데이트 stack[-1] 해당하는 res 배열의 인덱스 값 업데이트
        
        # 얼마나 떨어져 있는 정도는 cur의 인덱스 - stack[-1]의 인덱스
        
        for i, t in enumerate(temperatures):
            while stack and stack[-1][1] < t:
                print(stack)
                index, temp = stack.pop()
                res[index] = i - index # 이전 값에서 얼마나 떨어져있는 정도
            stack.append([i, t])
        return res
profile
Software Developer

0개의 댓글