문제22: 일일 온도

Created
Feb 12, 2023 06:03 AM
Tags
안되면, 걍 외우자
 

문제


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

입력


T = [73,74,75,71,69,72,76,73]
 

출력


[1,1,4,2,1,1,0,0]
 

풀이


  1. 스택에 쌓아두고, 만약 더 높지 않으면 다시 넣으며 돌기 → 틀림
stack = T[::-1] result = {} temp = stack.pop() for i in range(1, len(T)): if stack: next = stack.pop()
  1. 스택 값 비교
    1. 스택에 쌓일 때, 다음 수가 이전 수보다 온도가 낮기 때문에 쌓여 있다는 성질을 이용한다.
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

새로운 개념