백준
백준 10815번 어떻게 풀었나
kimbro6
2023. 1. 2. 00:01
- 푼 방법
- 1920번 문제와 굉장히 유사하여 코드를 출력문만 바꿔서 복붙했다.
- 좋았던점
- 비슷한 문제가 생각났다.
코드
import sys
# N입력받기
N = int(input())
# 리스트 입력받기
A = list(map(int, sys.stdin.readline().split()))
# M 입력받기
M = int(input())
# 리스트 입력받기
cheaklist = list(map(int, sys.stdin.readline().split()))
A.sort()
#이진검색
for k in range(M):
left = 0
right = N-1
while True:
middle = (left + right) // 2
if cheaklist[k] == A[middle]:
print(1, end=" ")
break
elif left == right:
print(0, end=" ")
break
elif cheaklist[k] < A[middle]:
right = middle
elif cheaklist[k] > A[middle]:
if right-left == 1:
left = middle + 1
else :
left = middle