728x90
반응형
https://www.acmicpc.net/problem/17298
Python
import sys
n = int(sys.stdin.readline().rstrip())
arr = list(map(int, sys.stdin.readline().split()))
stack = []
ans = []
for i in range(n-1, -1, -1):
if not stack:
ans.append(-1)
elif stack[-1] > arr[i]:
ans.append(stack[-1])
else:
isEmpty = False
while stack[-1] <= arr[i]:
stack.pop()
if not stack:
isEmpty = True
break
ans.append(-1 if isEmpty else stack[-1])
stack.append(arr[i])
for i in range(n-1, -1, -1):
print(ans[i], end=" ")
추가 테스트 케이스
입력
8
1 2 3 4 3 3 4 1
출력
2 3 4 -1 4 4 -1 -1
풀이
728x90
반응형
'Algorithm Problems' 카테고리의 다른 글
[백준] [Python] 5430번 AC - 스택 (0) | 2021.05.29 |
---|---|
[백준] [Python] 11047번 동전0 - Greedy (0) | 2021.05.25 |
[백준] [Python] 17952번 과제는 끝나지 않아! - 스택 (0) | 2021.05.23 |
[백준] [Python] 10799번 쇠막대기 (0) | 2021.05.22 |
[백준] [Python] 2493번 탑 - 스택 - [대표예제] (0) | 2021.05.22 |