https://www.acmicpc.net/problem/1920
#Solution
첫 리스트를 오름차순으로 정렬한 뒤, 두번째 리스트 요소 하나하나씩 이진 탐색으로 탐색해준다.
def BinarySearch(arr, val, low, high):
if low > high:
return False
mid = (low + high) // 2
if arr[mid] > val:
return BinarySearch(arr, val, low, mid - 1)
elif arr[mid] < val:
return BinarySearch(arr, val, mid + 1, high)
else:
return True
N = int(input())
A = list(map(int, input().split()))
M = int(input())
M_list = list(map(int, input().split()))
A = sorted(A)
for m in M_list:
if BinarySearch(A, m, 0, N-1):
print(1)
else:
print(0)
'Programming [Python] > 백준 알고리즘 솔루션' 카테고리의 다른 글
#200 백준 파이썬 [2420] 사파리월드 (0) | 2019.11.13 |
---|---|
#199 백준 파이썬 [1009] 분산 처리 (1) | 2019.11.13 |
#197 백준 파이썬 [1026] 보물 (0) | 2019.11.13 |
#196 백준 파이썬 [9663] N-Queen (3) | 2019.11.12 |
#195 백준 파이썬 [11021] A+B - 7 (0) | 2019.11.11 |