https://www.acmicpc.net/problem/10815
a = int(input())
arr = list(map(int,input().split()))
b = int(input())
arr2 = list(map(int,input().split()))
arr.sort()
def b(start,end,target):
mid = (start + end) // 2
if end < start:
return 0
if arr[mid] == target:
return 1
if arr[mid] > target:
end = mid - 1
return b(start,end,target)
else:
start = mid + 1
return b(start,end,target)
for i in arr2:
start = 0
end = len(arr) - 1
q = b(start,end,i)
print(q,end = ' ')
이분탐색의 전형적인 문제다.
'알고리즘' 카테고리의 다른 글
프로그래머스)[1]차 다트 게임-pyhton (0) | 2023.02.07 |
---|---|
백준4963)섬의 개수-python (0) | 2023.02.07 |
백준1654)랜선 자르기-python (0) | 2023.02.06 |
백준)숫자카드-python (0) | 2023.02.06 |
*프로그래머스)카펫-python (0) | 2023.02.05 |