문제
17299번: 오등큰수
첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다.
www.acmicpc.net
문제 풀이
[백준] 17298 오큰수 (Python)
문제 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 문제 풀이 해당 문제의 입력이 백
developer-jason.tistory.com
위 문제와 사실상 동일한 문제,
하지만 이 문제에서는 수 자체를 비교하지 않고 수가 등장한 빈도와 비교를 한다.
수의 빈도는 참조에 용이하도록 딕셔너리로 구현하였다.
코드
N = int(input())
A = list(map(int, input().split()))
F = dict()
for i in A:
if i not in F:
F[i] = 1
else:
F[i] += 1
stack = []
stack.append(0)
NGF = [-1 for _ in range(N)]
for i in range(1, N):
while stack and F[A[stack[-1]]] < F[A[i]]:
NGF[stack.pop()] = A[i]
stack.append(i)
print(*NGF)
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2981 검문 (Python) (0) | 2023.02.14 |
---|---|
[백준] 1725 히스토그램 (Python) (0) | 2023.02.13 |
[백준] 17298 오큰수 (Python) (0) | 2023.02.13 |
[백준] 9935-문자열 폭발 (Python) (0) | 2023.02.13 |
[백준] 1926-그림 (Python) (0) | 2023.02.13 |