-
뒤에 있는 큰 수 찾기
문제 설명
정수로 이루어진 배열 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
'파이썬 알고리즘 문제 풀이' 카테고리의 다른 글
[프로그래머스] Lv2. 더 맵게 파이썬 (0) | 2024.01.29 |
---|---|
[프로그래머스] Lv2. 주차 요금 계산 파이썬 (1) | 2024.01.28 |
[프로그래머스] Lv2. 카펫 파이 (0) | 2024.01.26 |
[프로그래머스] Lv1. 공원산책 파이썬 (2) | 2024.01.26 |
[프로그래머스] Lv1. 성격 유형 검사하기 파이썬 (1) | 2024.01.25 |