개발 연습장/백준 문제풀이

[파이썬, Python] 백준 10816: 숫자 카드 2

LooanCheong 2023. 2. 2. 12:50
반응형

문제

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

 

10816번: 숫자 카드 2

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

www.acmicpc.net

코드

import sys
input = sys.stdin.readline

n = input()
card_list = list(map(int,input().split()))
m = input()
num_list = list(map(int,input().split()))

cnt = {}

for i in card_list:
    if i in cnt:
        cnt[i] += 1
    else:
        cnt[i] = 1
        
for i in num_list:
    if i in cnt:
        print(cnt[i], end = ' ')
    else:
        print(0, end = ' ')

설명

이 문제 또한 딕셔너리를 이용하면 해결이 가능하다.

카운트를 위한 딕셔너리를 하나 만들어주고,
만약 card_list에 있는 카드가 cnt에 존재하지 않는다면 1을 넣어주고,
이미 존재하고 있다면 그 수에 해당하는 값에 1을 추가해준다.

최종적으로 가지고 있는 카드는 개수를 출력해주고,
그렇지 않은 카드는 0으로 출력해준다.
이 때, 출력 형식을 맞추기 위해 (end = ' ')을 사용하여 공백으로 출력한다.

반응형