https://leetcode.com/problems/daily-temperatures/
정수 배열 temperatures가 주어지는데, temperatures[i]는 i번째 날의 기온을 의미한다.
같은 길이의 정수 배열 answer를 반환하는 함수를 작성하는 문제로, answer[i]는 i번째 날 이후로 며칠이 지나야 i번째 날보다 기온이 오르는지 저장한다.
def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
answer = [0] * len(temperatures)
stack = []
for day, temp in enumerate(temperatures):
while stack and temperatures[stack[-1]] < temp:
i = stack.pop()
answer[i] = day - i
stack.append(day)
return answer
현재 날짜 day보다 이른 날짜의 기온이 temp보다 낮은 날이 있다면, 그 이른 날짜의 answer에는 day까지 며칠이 걸리는지 저장된다.
스택을 사용해야 기온이 오르기까지 걸리는 가장 짧은 날 수가 계산된다.