Posts [알고리즘] 백준 10816 - 숫자 카드 2
Post
Cancel

[알고리즘] 백준 10816 - 숫자 카드 2


문제

10816 - 숫자 카드 2


접근

n과 m이 제법 큰 수이다.
그냥 배열을 두고 하나씩 탐색한다면, 총 O(nm)이 걸린다.
아마 통과하기 힘들어보인다.

이 문제는 해시를 사용해야 한다.
파이썬은 훌륭한 딕셔너리가 있으니 사용해주자.
key에는 숫자가 들어오고, value에 해당 숫자가 몇 번 나왔는지 카운트해준다.


코드

  • 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
n = int(input())
dic = {}
arr = list(map(int, input().split()))
for item in arr:
    if item not in dic:
        dic[item] = 0
    dic[item]+=1
m = int(input())
ans = []
query = list(map(int, input().split()))
for q in query:
    if q not in dic:
        print(0, end=' ')
    else:
        print(dic[q], end=' ')


This post is licensed under CC BY 4.0 by the author.