[BaekJoon] 백준 10816번 : 숫자 카드2
Updated:
10816번 : 숫자 카드2
[6, 3, 2, 10, 10, 10, -10, -10, 7, 3] 이 내가 가진 카드 번호이고 갯수가 궁금한 숫자인 [10, 9, -5, 2, 3, 4, 5, -10] 이 주어진다면
각각 몇 개가 있는지 출력하면 된다. 이 같은 경우는 3, 0, 0, 1, 2, 0, 0, 2 이다.
파이썬에서는 배열의 원소의 갯수를 세어 딕셔너리 형태로 반환해주는 함수가 있다.
[Python] collection 모듈에 있는 Counter 함수를 이용하면 된다.
defaultdict 를 사용해 숫자가 없는 경우 value 값을 0 으로 미리 정해두는 방법도 있지만
try, except 를 이용해 처리하는게 더 가독성이 좋은 것 같다.
import collections
n = int(input())
my_card = list(map(int, input().split()))
m = int(input())
find_card = list(map(int, input().split()))
my_card = collections.Counter(my_card)
for num in find_card:
try:
print(my_card[num], end=' ')
except KeyError:
print(0, end=' ')
Leave a comment