DHistory

[Baekjoon] Sort, Binary Search - 1920 수 찾기 본문

Computer Science/Algorithm

[Baekjoon] Sort, Binary Search - 1920 수 찾기

ddu0422 2023. 9. 9. 22:55

문제

 

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().rstrip())
a = list(map(int, sys.stdin.readline().rstrip().split()))
m = int(sys.stdin.readline().rstrip())
b = list(map(int, sys.stdin.readline().rstrip().split()))


def solution(a, b):
    result = []
    a = sorted(a)

    for value in b:
        if binary_search(a, value, 0, len(a) - 1) != None:
            result.append(1)
        else:
            result.append(0)

    return result


def binary_search(array, target, start, end):
    while start <= end:
        mid = (start + end) // 2

        if array[mid] == target:
            return mid
        elif array[mid] > target:
            end = mid - 1
        else:
            start = mid + 1
    


print(*solution(a, b), sep="\n")

 

채점 결과