https://www.acmicpc.net/problem/1920
Problem
- N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오.
조건
- 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다.
- 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다.
SOL
이분탐색의 간단한 예제이다.
#binary search
import sys
input = sys.stdin.readline
N = int(input().rstrip())
target=list(map(int,input().split()))
M= int(input().rstrip())
find=list(map(int,input().split()))
target.sort()
def binary_search(n):
lo =0
high=N-1
while lo<=high:
mid= (lo+high)//2
if n>target[mid]:
lo=mid+1
continue
if n<target[mid]:
high=mid-1
continue
if n==target[mid]:
return 1
return 0
for i in range(M):
print(binary_search(find[i]))
'알고리즘 문제(SOL)' 카테고리의 다른 글
[백준/11085/파이썬] 군사 이동 (0) | 2022.02.12 |
---|---|
[백준/2442/파이썬] 별 찍기 -5 (0) | 2022.02.11 |
[백준/16922/파이썬] 로마 숫자 만들기 (0) | 2022.02.10 |
[백준/16917/파이썬] 양념 반 후라이드 반 (0) | 2022.02.10 |
[백준/파이썬/16968] 차량 번호판 1 (0) | 2022.02.09 |