9장_22 스택,큐(일일 온도)

김동민·2021년 10월 23일
0


매일화씨 온도 리스트 T를 입력받아 더 따뜻한 날씨를 위해서는 며칠을 더 기다려야 하는지 출력하라.

73도에서 하루만 기다리면 74, 74에서 하루 기다리면 75, 75에서 4일 기다려야 76, 71에서 2일 기다려야 72 ... ... 으로 진행된다.

1. 스택 값 비교

빗물 트래킹저럼 이전보다 올라가는 지점이 현재와 스택에 쌓아둔 지점의 온도 차이를 비교해 높을 때 스택값을 팝으로 꺼낸다.

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

profile
틀리면 당신이 맞습니다... 개발하며 얻은 지식창고

0개의 댓글