본문 바로가기
백준 & 프로그래머스

뒤에 있는 큰 수 찾기

by concho 2023. 12. 19.

from collections import deque
def solution(numbers):
    answer = [0 for _ in range(len(numbers))]
    answer[-1] = -1
    rList = deque([numbers[-1]])
    rMaxNum = numbers[-1]
    
    for i in range(len(numbers)-2,-1,-1):
        if rMaxNum <= numbers[i]: 
            rMaxNum = numbers[i]
            answer[i] = -1
        else:
            j = 0
            while True:
                rNum = rList[j]
                j += 1
                #print(rNum, end = ' ')
                if numbers[i] < rNum:
                    answer[i] = rNum
                    break
                else:
                    rList.popleft()
                    j -= 1
        #print('     ',numbers[i], rList)
        rList.appendleft(numbers[i])
        
    return answer

댓글