[이분탐색]
사전에 숫자 개수 먼저 구해 놓기 - 아이디어 참고
import sys
from collections import defaultdict
input=sys.stdin.readline
N=int(input())
arr=list(map(int,input().split()))
M=int(input())
brr=list(map(int,input().split()))
count=defaultdict(int)
for a in arr:
count[a]+=1
arr.sort()
for b in brr:
left,right=0,N-1
answer=0
while left<=right:
mid=(left+right)//2
if arr[mid]==b:
answer=count[b]
break
if arr[mid]>b:
right=mid-1
else:
left=mid+1
print(answer,end=" ")
'IT > coding study' 카테고리의 다른 글
[acmicpc] 6593. 상범 빌딩(python) (0) | 2023.02.07 |
---|---|
[acmicpc] 20057. 마법사 상어와 토네이도(python) (0) | 2023.02.05 |
[acmicpc] 2206. 벽 부수고 이동하기(python) (0) | 2022.10.10 |
[acmicpc] 21921. 블로그 (python) (0) | 2022.10.04 |
[acmicpc] 17822. 원판 돌리기 (python) (1) | 2022.09.30 |