728x90
반응형
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
<풀이>
시간 초과를 줄이기 위해서 deque를 사용했더니 통과했다.
오른쪽에 있는 큰 수를 찾아야 하므로 뒤에서부터 탐색을 해주었다.
<전체 코드>
from collections import deque
N = int(input())
arr = list(map(int, input().split()))
mostBigNum = -1
O_arr = deque()
answer = deque()
for i in arr[::-1]:
if i >= mostBigNum:
O_arr = deque([i])
answer.appendleft(-1)
mostBigNum = i
else:
while True:
now = O_arr[0]
if i < now:
answer.appendleft(O_arr[0])
O_arr.appendleft(i)
break
else:
O_arr.popleft()
print(' '.join(list(map(str, answer))))
728x90
반응형
'# Coding > # 백준' 카테고리의 다른 글
[백준 / 11053] 가장 긴 증가하는 부분 수열 - Python (0) | 2022.03.06 |
---|---|
[백준 / 7569] 토마토 - Python (0) | 2022.03.03 |
[백준 / 3055] 탈출 - Python (0) | 2022.02.17 |
[백준 / 1922] 네트워크 연결 - Python (0) | 2022.02.16 |
[백준 / 1043] 거짓말 - Python (0) | 2022.02.10 |