[LeetCode] 739. Daily Temperatures

Chobby·2026년 7월 30일

LeetCode

목록 보기
1120/1126

😎풀이

  1. 해당 일자보다 더운날이 없을 수 있으므로 모든 날은 0으로 초기화
  2. 스택에 쌓인 마지막 요소보다 오늘이 덥다면, 해당 마지막 날은 오늘까지 기다려야 함
  3. 모든 일자를 스택에 추가하며 가능한 빠른 더 더운날까지 남은 기간의 목록 반환
function dailyTemperatures(temperatures: number[]): number[] {
    const n = temperatures.length
    const answer = Array(n).fill(0)
    const stack = []
    for(let i = 0; i < n; i++) {
        while(stack.length > 0 && temperatures[i] > temperatures[stack.at(-1)]) {
            const prevIdx = stack.pop()
            answer[prevIdx] = i - prevIdx
        }
        stack.push(i)
    }
    return answer
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글