[Python] 알고리즘/Silver
[10815] 숫자 카드 (Python)
-Becca-
2021. 10. 29. 16:50
[문제]
https://www.acmicpc.net/problem/10815
10815번: 숫자 카드
첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,
www.acmicpc.net
알고리즘 분류는 정렬, 이분 탐색 입니다.
2번째 줄에 입력받은 카드를 정렬하고, 4번째 줄에 입력받은 카드를 이분 탐색으로 찾아야 합니다.
[코드]
import sys
def binary(data, find):
left = 0
right = len(data) - 1
while left <= right:
mid = (left + right) // 2
if data[mid] == find:
return "1"
elif data[mid] < find:
left = mid + 1
elif data[mid] > find:
right = mid - 1
return "0"
N = int(sys.stdin.readline())
card_N = sorted(list(map(int, sys.stdin.readline().split())))
M = int(sys.stdin.readline())
card_M = list(map(int, sys.stdin.readline().split()))
res = list()
for i in card_M:
res.append(binary(card_N, i))
for i in res:
print(i, end=" ")