1. set을 이용한 풀이
firstcnt = int(input())
firstarr = set(map(int, input().split()))
secondcnt = int(input())
secondarr = list(map(int, input().split()))
for i in secondarr:
if i in firstarr: print(1)
else: print(0)
2. 이분탐색을 이용한 풀이
firstcnt = int(input())
firstarr = sorted(list(map(int, input().split())))
secondcnt = int(input())
secondarr = list(map(int, input().split()))
def binary_search(arr, target, start, end):
if start > end: return 0
mid = (start + end) // 2
if arr[mid] == target: return 1
elif arr[mid] > target: return binary_search(arr, target, start, mid - 1)
else: return binary_search(arr, target, mid + 1, end)
for i in secondarr:
print(binary_search(firstarr, i, 0, firstcnt-1))
'백준' 카테고리의 다른 글
[백준] 1654번 랜선 자르기 파이썬 코드 (0) | 2023.09.06 |
---|---|
[백준] 2512번 예산 파이썬 코드 (0) | 2023.09.05 |
[백준] 1072번 게임 파이썬 코드 (0) | 2023.09.05 |
[백준] 2805번 나무 자르기 파이썬 코드 (0) | 2023.09.05 |
[백준] 10816번 숫자 카드 2 파이썬 코드 (0) | 2023.09.04 |