๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold4] 17298๋ฒˆ_์˜คํฐ์ˆ˜

Dbswnstjd 2023. 3. 15. 20:31

๋ฌธ์ œ

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

ํ’€์ด

# ๋ฐฑ์ค€ 17298๋ฒˆ ๋ฌธ์ œ - ์˜คํฐ์ˆ˜
import sys
input = sys.stdin.readline
n = int(input())
a = list(map(int, input().split()))
answer = [-1] * n 
stack = []

for i in range(n):
    while stack and a[stack[-1]] < a[i]:
        answer[stack.pop()] = a[i]
    stack.append(i)

print(*answer)

stack์„ ํ™œ์šฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ ๋ฌธ์ œ์ด๋‹ค. ์ „์— ํ’€์—ˆ๋˜ ํƒ‘๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•œ ๋ฌธ์ œ์ด๋‹ค.