For Programmer
백준 17298번 파이썬 문제풀이(오큰수) 본문
728x90
https://www.acmicpc.net/problem/17298
N = int(input())
arr = list(map(int, input().split()))
ans = [-1] * N # 초기 정답을 -1로 설정
stack = [0] # 첫 인덱스 0을 넣어준다.
for i in range(1, N):
# 만약 스택의 마지막 인덱스의 arr값이 해당 비교하고자 하는 값보다 작다면
# 그 값보다 클때까지 해당 값을 오른쪽의 큰 수로 설정해준다.
while stack and arr[stack[-1]] < arr[i]:
ans[stack.pop()] = arr[i]
stack.append(i) # 해당 인덱스를 무조건 스택에 넣어준다.
print(*ans)
728x90
'코팅테스트 > 백준 문제 모음' 카테고리의 다른 글
백준 14502번 파이썬 문제풀이(연구소) (0) | 2022.05.27 |
---|---|
백준 1799번 파이썬 문제풀이(비숍) (0) | 2022.05.13 |
백준 16724번 파이썬 문제풀이(피리 부는 사나이) (0) | 2022.05.12 |
백준 16946번 파이썬 문제풀이(벽 부수고 이동하기4) (0) | 2022.05.12 |
백준 2473번 파이썬 문제풀이(세 용액) (0) | 2022.05.11 |
Comments