algorithm/baekjoon
[백준] 2776번 암기왕(python)
support_u
2023. 4. 20. 20:04
문제
2776번: 암기왕
연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며,
www.acmicpc.net
코드
for t in range(int(input())):
# 오늘 본 숫자를 입력받고 이진탐색으로 풀기 위해 오름차순 정렬해준다
see_n = int(input())
see = sorted(list(map(int, input().split())))
write_n = int(input())
write = list(map(int, input().split()))
# 적은 숫자만큼 반복한다
for n in write:
# 시작과 끝을 정해준다
start, end = 0, see_n-1
while True:
mid = (start + end) // 2
# 같은 숫자가 나오면 1
if see[mid] == n:
print(1)
break
# 아님 0
if start >= end:
print(0)
breaㅏ
# 적어논 숫자가 본 숫자보다 크면 start를 조정
if see[mid] < n:
start = mid + 1
else:
end = mid - 1
해설
이진 탐색으로 비교군을 한정해나가면서 풀었다. 그러다 같은 답이 나오면 1, 아무리 돌아도 답이 안나오면 0을 출력하게 했다.