문제풀이/기타

[파이썬] [스택] 백준 17298 오큰수

승무_ 2022. 3. 31. 20:07

문제

https://www.acmicpc.net/problem/17298

 

17298번: 오큰수

첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다.

www.acmicpc.net

 

코드

n=int(input())
array=list(map(int, input().split()))

answer=[-1]*n
#stack에 index를 넣어줌
stack=[]

stack.append(0)
for i in range(1,len(array)):
    while stack and array[stack[-1]]<array[i]:
        answer[stack.pop()]=array[i]
    stack.append(i)

print(*answer)