https://school.programmers.co.kr/learn/courses/30/lessons/154539
완전 탐색을 사용하여 해결하였다.
def solution(numbers):
answer = [-1] * len(numbers)
for i in range(len(numbers)-1, -1, -1):
for j in range(i-1, -1, -1):
if numbers[j] >= numbers[i]:
break
answer[j] = numbers[i]
return answer
조금 더 효율적인 방식은 다름 사람의 풀이를 참고하였다.
def solution(numbers):
answer = [-1] * len(numbers)
s = []
for idx, n in enumerate(numbers):
while s and numbers[s[-1]] < n:
answer[s.pop()] = n
s.append(idx)
return answer
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스] / [Level 2] / [Python] [1차] 캐시 (0) | 2023.03.10 |
---|---|
[프로그래머스] / [Level 2] / [Python] 덧칠하기 (0) | 2023.03.07 |
[프로그래머스] / [Level 2] / [Python] 숫자 변환하기 (0) | 2023.02.02 |
[프로그래머스] / [Level 2] / [Python] 숫자 카드 나누기 (0) | 2023.01.26 |
[프로그래머스] / [Level 2] / [Python] 점찍기 (0) | 2023.01.26 |