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()
'Koala - 7기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/C++] 9328번 열쇠 (0) | 2022.08.08 |
---|---|
[백준/Python] 11286번 절댓값 힙 (0) | 2022.08.07 |
[백준/python] 1158번 요세푸스 문제 (0) | 2022.08.07 |
[백준 / Python] 2164번 카드2 (0) | 2022.08.07 |
[백준/Python] 2346번: 풍선 터뜨리기 (0) | 2022.08.07 |