https://www.acmicpc.net/problem/10816
해쉬를 이용하거나 이분 탐색을 통해 풀 수 있는 문제다.
나는 해쉬를 사용하여 풀었다.
파이썬 코드
#10816
import sys
input = sys.stdin.readline
N = input()
real_card = list(map(int, input().split()))
real_card.sort()
M = input()
pred_card = list(map(int, input().split()))
match = {}
for i in real_card:
if i in match:
match[i] += 1
else:
match[i] = 1
for j in pred_card:
if j in match:
print(match[j], end=' ')
else:
print(0, end=' ')
match 딕셔너리에 real_card의 숫자와 개수를 넣고
pred_card에 있는 카드의 경우 출력하고, 없으면 0을 출력한다.
'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
[백준/알고리즘]#2331: 반복수열 [파이썬(python)/수학] (0) | 2021.09.27 |
---|---|
[백준/알고리즘]#1051: 숫자 정사각형 [파이썬(python)/브루트포스] (0) | 2021.09.27 |
[백준/알고리즘]#2908: 상수 [수학/파이썬(python)/BOJ] (0) | 2021.09.23 |
[백준/알고리즘]#1152: 단어의 개수 [문자열/파이썬(python)/BOJ] (0) | 2021.09.23 |
[백준/알고리즘] #6996: 애너그램 [문자열/파이썬(python)/BOJ] (0) | 2021.09.23 |