매일화씨 온도 리스트 T를 입력받아 더 따뜻한 날씨를 위해서는 며칠을 더 기다려야 하는지 출력하라.
73도에서 하루만 기다리면 74, 74에서 하루 기다리면 75, 75에서 4일 기다려야 76, 71에서 2일 기다려야 72 ... ... 으로 진행된다.
빗물 트래킹저럼 이전보다 올라가는 지점이 현재와 스택에 쌓아둔 지점의 온도 차이를 비교해 높을 때 스택값을 팝으로 꺼낸다.
from typing import List
class Solution:
def dailyTemperatures(self, T: List[int]) -> List[int]:
answer = [0] * len(T)
stack = []
for i, cur in enumerate(T):
# 현재 온도가 스택 값보다 높다면 정답 처리
while stack and cur > T[stack[-1]]:
last = stack.pop()
answer[last] = i - last
stack.append(i)
return answer