Koala - 7기/코딩테스트 준비 스터디
[백준 / Python] 17298 - 오큰수
재우신
2022. 8. 7. 22:52
Intro
Solution
- 결과를 출력할 리스트를 미리 만들고, -1로 가득 채워 초기화한다.
- 주어진 수열의 수를 인덱스와 함께 스택에 저장한다.
- 수열을 순회하며 스택의 꼭대기에 있는 수와 비교한다.
- 꼭대기의 수가 더 클 경우, 결과 리스트에 그 값을 저장한다.
Code
def solve():
n = int(input())
A = list(map(int, input().split()))
stack = []
nge = [-1]*n
for i, a in enumerate(A):
while stack:
if stack[-1][1] < a:
j, _ = stack.pop()
nge[j] = a
else:
break
stack.append((i, a))
print(*nge)
solve()