[리트코드] 739. Daily Temperatures

2024. 7. 11. 21:00PS/리트코드

728x90

문제 링크

https://leetcode.com/problems/daily-temperatures/description/

느낀 점

어떻게든 O(N^2)이 안되는 방법을 생각해내야하는데, 지금까지 가장 큰 시점보다 더 올라간 시점을 찾았을 때, 이전에 이 점 보다 더 작은 점들을 계산해주는 방식으로 구했음. 솔직히 처음 문제를 보고 이렇게 딱 생각하기는 쉽지 않을 것 같다..

from typing import List
import collections
class Solution:
    def dailyTemperatures(self, T: List[int]) -> List[int]:
        count = [0 for _ in range(len(T))] 
        stack = [] 
        T = collections.deque(T) 
        for ind, item in enumerate(T) :
            while stack and T[stack[-1]] < item :  
                last = stack.pop()
                count[last] = ind - last
            stack.append(ind)
        return count

'PS > 리트코드' 카테고리의 다른 글

[리트코드] 2. Add Two Numbers  (2) 2024.07.10
[리트코드] 206. Reverse Linked List  (0) 2024.07.10
[리트코드] 238. Product of Array Except Self  (0) 2024.07.10
[리트코드] 15. 3Sum  (0) 2024.07.04