핵심은 현재 기준으로 얼마나 떨어져 있는지 판단하는 것
값을 비교하고 인덱스로 떨어진 정도를 알아낸다.
인덱스와 온도를 스택에 넣다가 더 따뜻한 값이 나왔을 때 res 배열 업데이트
class Solution:
def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
stack = []
res = [0] * len(temperatures)
# 값을 스택에 넣고
# temperatures 반복문을 돌며 cur와 stack에 있는 온도를 하나씩 확인한다.
# stack[-1]의 온도가 cur의 온도보다 낮은 경우(더 따뜻) 업데이트 stack[-1] 해당하는 res 배열의 인덱스 값 업데이트
# 얼마나 떨어져 있는 정도는 cur의 인덱스 - stack[-1]의 인덱스
for i, t in enumerate(temperatures):
while stack and stack[-1][1] < t:
print(stack)
index, temp = stack.pop()
res[index] = i - index # 이전 값에서 얼마나 떨어져있는 정도
stack.append([i, t])
return res