[문제]
https://www.acmicpc.net/problem/10816
[풀이]
이분 탐색으로 푸는 방법도 있지만 해쉬 자료구조를 이용해 풀었다.
상근이가 갖고 있는 숫자 카드를 차례대로 한 개씩 뽑아 그 숫자가 hashmap 딕셔너리의 key에 있다면 value값을 1 증가시켜주고 숫자가 딕셔너리에 없다면 해당 key값을 추가시킨다.
[코드]
import sys
if __name__ == '__main__':
n = int(sys.stdin.readline())
N = map(int, sys.stdin.readline().split())
m = int(sys.stdin.readline())
M = map(int, sys.stdin.readline().split())
hashmap = {}
for i in N:
if i in hashmap:
hashmap[i] += 1
else:
hashmap[i] = 1
print(' '.join(str(hashmap[x]) if x in hashmap else '0' for x in M))
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 2231번 분해합 (0) | 2021.08.03 |
---|---|
[Python] BOJ/백준 1874번 스택 수열 (0) | 2021.07.30 |
[Python] BOJ/백준 1237번 정ㅋ벅ㅋ (0) | 2021.07.28 |
[Python] BOJ/백준 11650번 좌표 정렬하기 (0) | 2021.07.28 |
[Python] BOJ/백준 2798번 블랙잭 (0) | 2021.07.28 |