📖이 포스팅은 '파이썬 알고리즘 인터뷰 - 박상길님' 책을 보고 작성되었습니다.
😎문제 : https://leetcode.com/problems/daily-temperatures/submissions/
매일 화씨 온도(F) 리스트 T를 입력받아서, 더 따뜻한 날씨를 위해서는 며칠을 더 기다려야 하는지를 출력하라
[스택 값 비교]
class Solution:
def dailyTemperatures(self, temperatures: 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
- 이 문제는 enumerate를 사용해서 푼 문제로 index를 stack에 넣어주고 value를 비교해서 value가 뒤에 올 값이 더 클때 현제 index - stack에 있던 index를 빼주며 진행한다.
- 리스트 안에서 가장 큰 값이 중간에 있어 뒤에 더 큰 값이 안 온다면 이 값은 최종적으로 0이 되어야 하기 때문에 answer을 모두 0으로 초기화 시켜준 것이다.
스택이나 큐,, 데크는 잘 알아서 다행이다..
'자료구조와 알고리즘 > 🥑알고리즘' 카테고리의 다른 글
[알고리즘][스택 & 큐] - 5. 스택을 이용한 큐 구현 (0) | 2022.03.02 |
---|---|
[알고리즘][스택 & 큐] - 4. 큐를 이용한 스택 구현 (0) | 2022.03.02 |
[알고리즘][스택 & 큐] - 2. 중복 문자 제거 (0) | 2022.03.01 |
[알고리즘][스택 & 큐] - 1. 유효한 괄호 (0) | 2022.03.01 |
[알고리즘][연결 리스트] - 5. 페어의 노드 스왑 (0) | 2022.02.26 |