LeetCode 739. Daily Temperatures [Python]

hysong·2022년 7월 23일
0

PS

목록 보기
3/15

📌 Problem.

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

정수 배열 temperatures가 주어지는데, temperatures[i]는 i번째 날의 기온을 의미한다.
같은 길이의 정수 배열 answer를 반환하는 함수를 작성하는 문제로, answer[i]는 i번째 날 이후로 며칠이 지나야 i번째 날보다 기온이 오르는지 저장한다.

📌 Solution.

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까지 며칠이 걸리는지 저장된다.
스택을 사용해야 기온이 오르기까지 걸리는 가장 짧은 날 수가 계산된다.

0개의 댓글