안되면, 걍 외우자
문제
매일의 화씨 온도 리스트 T를 입력받아서, 더 따뜻한 날씨를 위해서는 며칠을 기다려야 하는 지를 출력하라.
입력
T = [73,74,75,71,69,72,76,73]
출력
[1,1,4,2,1,1,0,0]
풀이
- 스택에 쌓아두고, 만약 더 높지 않으면 다시 넣으며 돌기 → 틀림
stack = T[::-1] result = {} temp = stack.pop() for i in range(1, len(T)): if stack: next = stack.pop()
- 스택 값 비교
- 스택에 쌓일 때, 다음 수가 이전 수보다 온도가 낮기 때문에 쌓여 있다는 성질을 이용한다.
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