문제1. 매일의 화씨온도 리스트 T를 입력받아서, 더 따뜻한 날씨를 위해서는 며칠을 더 기다려야 하는지를 출력하라.
EX1_입력 ] T = [ 73,74,75,71,69,72,76,73 ]
EX1_출력 ] [ 1,1,4,2,1,1,0,0 ]
해당 문제를 푸는 방법 ?!
1. 스택을 이용한 값 비교
1. 스택을 이용한 값 비교
def DailyTemperature(list):
answer = [0] * len(list)
stack = []
for i, cur in enumerate(list):
while stack and cur > list[stack[-1]]:
last = stack.pop()
answer[last] = i-last
stack.append(i)
print(answer)
DailyTemperature([73,74,75,71,69,72,76,73])
- 스택에 현재 인덱스를 계속 넣어두는데, 이전보다 상승하는 지점에서 현재 온도와 스택에 쌓아둔 인텍스 지점의 온도 차이를 비교
- 더 높다면 스택에서 꺼내고 현재 인덱스와 스택에 쌓아둔 인덱스이 차이를 answer에 저장
- 더 높은 온도가 없다면 = 스택이 비워지지 않으면 해당 인텍스는 해당 없음으로 0 값으로 남는다.
[ 참고자료 ]
- 도서 : 파이썬 알고리즘 인터뷰
파이썬 알고리즘 인터뷰 - 교보문고
95가지 알고리즘 문제 풀이로 완성하는 코딩 테스트 | [이 책의 구성] [1부 코딩 인터뷰] 1장, ‘코딩 인터뷰’에서는 코딩 테스트에 대한 소개와 어떻게 하면 시험을 잘 치를 수 있을지, 문제 풀이
www.kyobobook.co.kr
'스터디IT🌼 > Algorithm' 카테고리의 다른 글
[ 파이썬 ] DFS - 깊이 우선 탐색 / BFS - 넓이 우선 탐색 (Feat. 음료수 얼려 먹기, 미로 탈출 ) (0) | 2022.02.17 |
---|---|
[ 파이썬 ] 파이썬 자료형 별 시간 복잡도 ( BIG - O ) (0) | 2022.02.07 |
[ 파이썬 알고리즘 인터뷰 ] 중복 문자 제거 (0) | 2022.02.03 |
[ 파이썬 알고리즘 인터뷰 ] 유효한 괄호 (0) | 2022.02.03 |
[ 파이썬 알고리즘 인터뷰 ] 가장 긴 팰린드롬 부분 문자열 (0) | 2022.01.19 |
댓글