https://www.acmicpc.net/problem/10816
import sys
read = sys.stdin.readline
n = int(input())
cards = list(map(int, read().split()))
m = int(input())
nums = list(map(int, read().split()))
count = {}
for card in cards:
if card in count:
count[card] += 1
else:
count[card] = 1
for num in nums:
result = count.get(num)
if result == None:
print(0, end=' ')
else:
print(result, end=' ')
의외로 간단한 문제였는데, 어렵게 생각했던 것 같다..
count라는 딕셔너리에 cards에 있는 값들을 key로 두고 cards에 있는 값의 갯수를 value로 설정한다.
이후 nums 리스트에 있는 값을 key로 한 값을 count에서 가져와 None이라면 cards와 겹치는 수가 아니므로 0을 출력하고 그렇지 않을경우 value값(개수)을 출력한다.
'Algorithm > Problems' 카테고리의 다른 글
[백준/파이썬] 1012번 유기농 배추 (0) | 2022.12.06 |
---|---|
[백준/파이썬] 11478번 서로 다른 부분 문자열의 개수 (0) | 2022.12.06 |
[백준/파이썬] 1620번 나는야 포켓몬 마스터 이다솜 (0) | 2022.11.18 |
[백준/파이썬] 14425번 문자열 집합 (0) | 2022.11.18 |
[백준/파이썬] 10815번 숫자 카드 (0) | 2022.11.18 |