반응형

파이썬 / BOJ 백준 / 10816 숫자 카드 2- Dictionary

https://www.acmicpc.net/problem/10816

 

10816번: 숫자 카드 2

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

문제

숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오.

 

문제 풀이

1. Dictionary를 이용하여 쉽게 풀 수 있는 문제입니다.

2. 해당 주소에 값이 있으면, 그 값에 +1을 해줍니다.

3. 해당 주소에 값이 없으면, 값을 추가합니다.

 

전체 코드

import sys

n = int(sys.stdin.readline().strip())
n_list = list(map(int, sys.stdin.readline().split()))
m = int(sys.stdin.readline().strip())
m_list = list(map(int, sys.stdin.readline().split()))

d = dict()
for i in n_list:
    if i in d.keys():
        d[i] += 1
    else:
        d[i] = 1

for i in m_list:
    if i in d.keys():
        print(d[i], end=' ')
    else:
        print(0, end=' ')

 

반응형

+ Recent posts