백준 17298 오큰수 Python

Derhon·2023년 11월 16일
0
post-thumbnail

백준 17298 오큰수

나의 답

length = int(input())

lines = list(map(int, input().split()))
stack = []
res = [-1] * length

for i in range(length-1, -1, -1):
    while stack:
        if stack[-1] <= lines[i]:
            stack.pop()
        else:
            res[i] = stack[-1]
            stack.append(lines[i])
            break
    if not stack:
        stack.append(lines[i])

print(*res, sep=" ")

계속 동일한 문제이다.
스택은 다 이런식으로 풀면 되는듯?
그나마 여기서 달랐던건 같은 수를 처리하는 경우가 조금 달랐다

profile
🧑‍🚀 이사했어요 ⮕ https://99uulog.tistory.com/

0개의 댓글