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
from collections import Counter
import sys
_ = input()
arr = list(map(int, sys.stdin.readline().strip().split()))
count_arr = Counter(arr)
stack = []
result = [-1] * len(arr)
for i in range(len(arr)-1):
stack.append(i)
while stack and count_arr[arr[stack[-1]]] < count_arr[arr[i+1]]:
result[stack.pop()] = arr[i+1]
print(*result)
17298번의 오큰수와 같은 개념으로 풀면 된다.
17298 번 바로가기 →
중간에 Counter개념이 추가되었을 뿐이다.
'알고리즘 > 백준-파이썬' 카테고리의 다른 글
[백준] 1935번 (python 파이썬) (0) | 2022.04.08 |
---|---|
[백준] 1918번 (python 파이썬) (0) | 2022.04.08 |
[백준] 17298번 (python 파이선) (0) | 2022.04.06 |
[백준] 10799번 (python 파이썬) (0) | 2022.04.06 |
[백준] 17413번 (python 파이썬) (0) | 2022.04.06 |