문제 : https://www.acmicpc.net/problem/10815
▶ 코드
# 숫자 배열에만 이분탐색 가능
def BinarySearch(arr, val, low, high):
if low > high:
return False
mid = (low + high) // 2
if val < arr[mid]:
return BinarySearch(arr, val, low, mid-1)
elif val > arr[mid]:
return BinarySearch(arr, val, mid+1, high)
else:
return True
n = int(input())
lst = list(map(int, input().split()))
lst.sort() # 이분탐색 하기전에 반드시 arr 정렬 !
m = int(input())
card = list(map(int, input().split()))
ans = []
for number in card:
if BinarySearch(lst, number, 0, len(lst)-1):
ans.append(1)
else:
ans.append(0)
#print(ans)
for a in ans:
print(a, end=' ')
'■코테 중요개념 > 이분 탐색' 카테고리의 다른 글
[백준 10816] 숫자 카드 2 (0) | 2020.05.18 |
---|---|
[백준 1654] 랜선 자르기 (0) | 2020.05.18 |
[백준 1620] 나는야 포켓몬 마스터 이다솜 (0) | 2020.05.17 |
[백준 1920] 수 찾기 (0) | 2020.05.17 |