
스택을 사용하여 풀었다.(stack=[])
배열을 뒤에서부터 돌면서 stack 안에 배열의 i번째 값보다 큰값이 있을 때까지 pop을 해주었고 그 후에 i번째 값을 스택에 추가시켰다.
-> 따라서 스택에는 i번째 값부터 오름차순으로 정렬되어있다.
def solution(numbers):
answer = []
stack=[]
for i in range(len(numbers)-1,-1,-1):
while stack and stack[-1]<=numbers[i]:
stack.pop()
if stack and stack[-1]>numbers[i]:
answer.append(stack[-1])
else:
answer.append(-1)
stack.append(numbers[i])
answer.reverse()
return answer
'algorithm > coding test' 카테고리의 다른 글
| 프로그래머스 - 호텔 대실 (파이썬) (0) | 2024.04.14 |
|---|---|
| 프로그래머스 - 롤케이크자르기 (파이썬) (0) | 2024.04.14 |
| 프로그래머스 - 섬연결하기 (파이썬) (1) | 2024.03.05 |
| 프로그래머스 땅따먹기 파이썬 (0) | 2024.02.23 |
| 프로그래머스 모음사전 파이썬 (0) | 2024.02.23 |