-
[파이썬] 리트코드 739. Daily Temperatures 풀이기타/알고리즘 2020. 12. 16. 19:09반응형
https://leetcode.com/problems/daily-temperatures/
매일의 온도를 리스트 T로 입력받은 뒤 현재보다 더 따뜻한 날이 올 때까지 며칠이 걸리는지를 구하는 문제다
1. enumerate를 이용해서 특정 날짜의 인덱스와 온도값을 기억한다
2. T의 인덱스를 계속해서 스택에 쌓아두면서
1. 현재 온도가 스택에 쌓아둔 마지막 날의 온도보다 높다면
2. 스택을 pop해주고
3. 정답에 i와 pop한 인덱스와의 차이를 저장한다
각 변수들은 아래와 같은 형태로 변화한다
i 0 1 2 3 current 73 74 75 71 stk 0 1 2 3 last - 0 1 - answer[last] - 1-0 = 1 2-1 = 1 - class Solution: def dailyTemperatures(self, T: List[int]) -> List[int]: stk = [] answer = [0]*len(T) for i, current in enumerate(T): while stk and current>T[stk[-1]]: last = stk.pop() answer[last] = i-last stk.append(i) return answer
반응형'기타 > 알고리즘' 카테고리의 다른 글
[파이썬] 그래프, 그래프 탐색(BFS,DFS) 알고리즘의 기초 (0) 2020.12.18 백준 파이썬 11501 : 주식 풀이 (시간초과 해결) (0) 2020.12.16 백준 파이썬 17952번 : 과제는 끝나지 않아! 풀이 (0) 2020.12.15 [파이썬] 리트코드 20. Valid Parentheses 풀이 (0) 2020.12.15 [파이썬] 리트코드 15. 3Sum 풀이 (0) 2020.12.14