https://www.acmicpc.net/problem/10816
10816번: 숫자 카드 2
첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,
www.acmicpc.net
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 |