티스토리 뷰

알고리즘/백준

17299번 오등큰수

글을 쓰는 개발자 2020. 12. 1. 20:50
반응형

문제: 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

이 문제는 이해를 못한 것이 컸다. 문제 자체는 오등수 문제와 비슷하다는 것은 인지하고 있었는데 문제에 대하여 제대로 이해를 못해서 결국 블로그를 참조하게 되었다. 

원리 자체는 오등수와 비슷하다. 오등큰수는 이제 비교 대상이 자신의 값 자체가 아닌 그 값의 갯수라는 것에 대한 차이점이 있을 뿐이다.  

결과를 저장할 리스트와 스택 그리고 각 숫자에 대한 갯수를 저장하는 배열이 필요하다.

갯수는 사전형식을 이용하여 갯수를 처리하였다. 그리고 나머지 부분은 오등수와 비슷하다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import sys
 
num = int(input())
= list(map(int, input().split(" ")))
result = ["-1" for _ in range(num)]
stack = [0]
count = dict()
for i in a:
    try:
        count[i] += 1
    except:
        count[i] = 1
 
for i in range(num):
    while stack and count[a[stack[-1]]] < count[a[i]]:
        result[stack[-1]] = str(a[i])
        stack.pop()
    stack.append(i)
    i+=1
 
print(" ".join(result))
cs

 

이 코드는 다음 블로그에서 참조하였다.

myphiloprogramming.tistory.com/32

 

[17729] 오등큰수 #python

백준 17299번 오등큰수 import sys num = int(input()) a = list(map(int, input().split(" "))) result = ["-1" for _ in range(num)] stack = [0] count = dict() for i in a: try: count[i] += 1 except: count..

myphiloprogramming.tistory.com

 

반응형

'알고리즘 > 백준' 카테고리의 다른 글

합분해 2225번 백준  (0) 2020.12.02
제곱수의 합 1699번 백준  (0) 2020.12.02
1,2,3 더하기 5 15990번 백준  (0) 2020.12.02
17298번 오큰수  (0) 2020.12.01
10799번 쇠막대기 파이썬  (0) 2020.12.01
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함