1920번: 수 찾기
첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들
www.acmicpc.net
아이디어:
이분 탐색의 기본 문제. 이분탐색의 로직을 잘 익히자.
import sys
n = int(sys.stdin.readline())
arr = list(map(int, sys.stdin.readline().split()))
arr.sort()
m = int(sys.stdin.readline())
num = list(map(int, sys.stdin.readline().split()))
for k in num:
ans = 0
high = n-1
low = 0
while (high>=low):
mid = (high+low)//2 ##
if (arr[mid]>k):
high = mid-1
elif (arr[mid]<k):
low = mid+1
else:
ans = 1
break
print(ans)
'알고리즘💻 > 이분탐색&정렬&분할정복' 카테고리의 다른 글
BOJ 1026번: 보물 (0) | 2021.01.29 |
---|---|
BOJ 2470번: 두 용액 (0) | 2021.01.25 |
BOJ 2343번: 기타 레슨 (0) | 2021.01.25 |
BOJ 16401번: 과자 나눠주기 (0) | 2021.01.25 |
BOJ 3079번: 입국심사 (0) | 2021.01.25 |