문제
https://www.acmicpc.net/problem/10816
풀이
- 자료구조, 이분탐색, 해시를 사용한 집합과 맵
상근이가 가지고 있는 숫자의 카드를 개수와 함께 딕셔너리에 담는다.
상근이가 가지고 있는 숫자 카드가 6 3 2 10 10 10 -10 -10 7 3 일 경우
딕셔너리에는 {6: 1, 3: 2, 2: 1, 10: 3, -10: 2, 7: 1} 로 담기게 된다.
주어진 숫자카드를 딕셔너리에서 key값을 찾아 value값을 출력하고, key가 존재하지 않으면 0을 출력 해 준다.
코드
n = int(input())
arr1 = list(map(int, input().split()))
dict1 = dict()
# 숫자카드와 개수를 딕셔너리에 담기
for i in arr1:
if i in dict1:
dict1[i] += 1
else:
dict1[i] = 1
m = int(input())
arr2 = list(map(int, input().split()))
for i in arr2:
if i in dict1:
print(dict1[i], end=' ') # 존재하는 숫자 카드라면
else:
print(0, end=' ') # 존재하지 않는 숫자 카드라면
'코딩테스트 > BOJ' 카테고리의 다른 글
[백준/파이썬] 2231번: 분해합 (Python) (0) | 2021.06.23 |
---|---|
[백준/파이썬] 11650번: 좌표 정렬하기 (Python) (0) | 2021.06.23 |
[백준/파이썬] 10814번: 나이순 정렬 (Python) (0) | 2021.06.23 |
[백준/파이썬] 1373번: 2진수 8진수 (Python) (0) | 2021.06.20 |