반응형
# Problem
Given a list of daily temperatures T, return a list such that, for each day in the input, tells you how many days you would have to wait until a warmer temperature. If there is no future day for which this is possible, put 0 instead. For example, given the list of temperatures T = [73, 74, 75, 71, 69, 72, 76, 73], your output should be [1, 1, 4, 2, 1, 1, 0, 0]. Note: The length of temperatures will be in the range [1, 30000]. Each temperature will be an integer in the range [30, 100].
|
# My Answer
class Solution:
def dailyTemperatures(self, T: List[int]) -> List[int]:
result = [0]*len(T)
stack=[]
for i in range(len(T)):
while stack and T[stack[-1]]<T[i]:
s = stack.pop()
result[s] = i-s
stack.append(i)
return result
# Solution 1 - 스택 값 비교
class Solution:
def dailyTemperatures(self, T: List[int]) -> List[int]:
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
스택에 여러개 값이 들어가 있는 경우 반드시 나중에 들어간 값이 먼저 나오게 되어있음
나중에 들어가 있는 값이 더 작은 값이기 때문에 스택의 앞의 값보다 큰 수는 나중의 값보다 큼
반응형
'Algorithm > LEET CODE ( 파이썬 알고리즘 인터뷰)' 카테고리의 다른 글
❗️[LEET CODE] 23. Merge k Sorted Lists ( k개 정렬 리스트 병합) (0) | 2021.04.01 |
---|---|
❗️[LEET CODE] 641. Design Circular Deque (0) | 2021.03.31 |
[LEET CODE] 622. Design Circular Queue (0) | 2021.03.29 |
[LEET CODE] 232. Implement Queue using Stacks (0) | 2021.03.26 |
[LEET CODE] 225. Implement Stack using Queues (0) | 2021.03.26 |