본문 바로가기
스터디IT🌼/Algorithm

[ 파이썬 알고리즘 인터뷰 ] 일일 온도

by 동백사과 2022. 2. 6.

 

문제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

 

 

 

댓글