티스토리 뷰

https://www.acmicpc.net/problem/1920

 

1920번: 수 찾기

첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다.

www.acmicpc.net

import sys

N = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().split()))
M = int(sys.stdin.readline())
B = list(map(int, sys.stdin.readline().split()))
A = sorted(A)

result = []
def binarySerach(A, x, low, high):
    if low > high:
        return 0

    else:
        mid = (low+high) // 2
        
        if x  == A[mid]:
            return 1
        elif x < A[mid]:
            return (binarySerach(A, x, low, mid -1))
        else:
            return(binarySerach(A, x, mid+1, high))

for i in range(M):
    print(binarySerach(A, B[i], 0, N-1))
공지사항
최근에 올라온 글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함