https://www.acmicpc.net/problem/17299
17299번: 오등큰수
첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다.
www.acmicpc.net
import sys
input = sys.stdin.readline
N = int(input())
num_list = list(map(int, input().strip().split()))
stack = []
result = ['-1'] * N
NGF = {}
for num in num_list:
if num in NGF:
NGF[num] += 1
else:
NGF[num] = 1
for i in range(0, N):
while len(stack) != 0 and NGF[num_list[stack[-1]]] < NGF[num_list[i]]:
result[stack.pop()] = str(num_list[i])
stack.append(i)
print(" ".join(result))
'알고리즘 > 백준' 카테고리의 다른 글
[백준 11576][파이썬] Base Conversion (0) | 2022.07.13 |
---|---|
[백준 10799][파이썬] 쇠막대기 (0) | 2022.07.12 |
[백준 1406][파이썬] 에디터 (0) | 2022.07.09 |
[백준 17298][파이썬] 오큰수 (0) | 2022.07.05 |
[백준 1935][파이썬] 후위 표기식2 (0) | 2022.07.05 |