GitHub

https://github.com/Choidongjun0830

파이썬 알고리즘 문제 풀이

[프로그래머스] Lv2. 뒤에 있는 큰 수 찾기 파이썬

gogi masidda 2024. 1. 28. 14:21
  • 뒤에 있는 큰 수 찾기
문제 설명

정수로 이루어진 배열 numbers가 있습니다. 배열 의 각 원소들에 대해 자신보다 뒤에 있는 숫자 중에서 자신보다 크면서 가장 가까이 있는 수를 뒷 큰수라고 합니다.
정수 배열 numbers가 매개변수로 주어질 때, 모든 원소에 대한 뒷 큰수들을 차례로 담은 배열을 return 하도록 solution 함수를 완성해주세요. 단, 뒷 큰수가 존재하지 않는 원소는 -1을 담습니다.

 

def solution(numbers):
    answer = [-1] * len(numbers)
    li = []
    
    li.append(0)
    for i in range(1, len(numbers)):
        while(len(li) != 0 and numbers[li[-1]] < numbers[i]):
            answer[li.pop()] = numbers[i]
        li.append(i)
    
    while(len(li) != 0):
        answer[li.pop()] = -1
    return answer

 

이전에 작성한 포스팅에서 자바 풀이와 같은 논리로 풀었다. 하지만 파이썬에는 stack이 존재하지 않기 때문에 리스트로 stack을 구현했다.

728x90