본문 바로가기
문제 풀이/백준(BOJ)

[Python] 백준 10815번 : 숫자 카드

by 희조당 2022. 6. 22.
728x90

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

 

10815번: 숫자 카드

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net


 문제 풀이

기본적인 이분 탐색 문제이다.

값을 입력받고 출력만 잘하면 된다.

 느낀 점

파이썬이 아니였다면 입력 값의 범위 때문에 다소 어려웠을 것 같다.

파이썬 최고다...

 코드

from sys import stdin

def binary(arr, left, right, key):
    while left <= right:
        mid = int((left + right) / 2)
        if key > arr[mid]: left = mid + 1
        elif key < arr[mid]: right = mid - 1
        else: return 1
    return 0

n = int(stdin.readline())
N = sorted(map(int, stdin.readline().split()))
m = int(stdin.readline())
M = map(int, stdin.readline().split())

for i in M:
    print(binary(N, 0, n-1, i), end=' ')

댓글