[Python] 백준1920 수 찾기
문제
예제 입력
코드
n = int(input())
num_list = list(map(int, input().split()))
m = int(input())
ans_list = list(map(int, input().split()))
num_list.sort()
for ans in ans_list:
flag = False
l, r = 0, n-1
while l <= r:
mid = (l + r) // 2
if ans == num_list[mid]:
flag = True
print(1)
break
elif ans > num_list[mid]:
l = mid + 1
else:
r = mid - 1
if not flag:
print(0)
설명
파이썬을 통해서 사용자로부터 입력받아 이진탐색으로 찾아서 값이 존재한다면 1을 출력하고 없으면 0을 출력합니다.
정리
n = int(input())
# zero_list = [0 for _ in range(n)]
num_list = set(map(int, input().split()))
# arr = [ list(map(int, input().split())) for _ in range(n)]
# arr = [[0]*m for _ in range(n)]
m = int(input())
ans_list = list(map(int, input().split()))
for ans in ans_list:
print(1) if ans in num_list else print(0)
그 외에도, set라는 자료형은 집합같은 개념으로 사용하여 그 안에 값이 있는지 확인할 수 있습니다.