๋ฐ์ํ
https://leetcode.com/problems/daily-temperatures/
1์ฐจ ํ์ด
class Solution(object):
def dailyTemperatures(self, temperatures):
"""
:type temperatures: List[int]
:rtype: List[int]
"""
stack = [0]
res = [0] * len(temperatures)
checked = 1
while checked < len(temperatures):
while len(stack) > 0:
if temperatures[checked] > temperatures[stack[-1]]:
res[stack[-1]] = checked - stack[-1]
stack.pop()
else:
break
stack.append(checked)
checked += 1
return res
ํด์ค
https://www.youtube.com/watch?v=cTBiBSnjO3c
while๋ฌธ์ผ๋ก ํ๋ ๋ด ํ์ด๋ฅผ ๋น๊ต์ ๋จ์ํ๊ฒ ํ์๋ค.
res = [0] * len(temperatures)
stack = [] # pair [temp, index]
for i,t in enumerate(temperatures):
while stack and t > stack[-1][0]:
stackT, stackInd = stack.pop()
res[stackInd] = (i - stackInd)
stack.append([t, i])
return res
๋ฐ์ํ