하루일문
[백준] 2776번 암기왕(python) 본문
문제
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을 출력하게 했다.
'algorithm > baekjoon' 카테고리의 다른 글
[백준] 1920번 수 찾기(파이썬) (3) | 2023.04.23 |
---|---|
[백준] 2512번 예산(python) (0) | 2023.04.21 |
[백준] 1003번 피보나치 함수(파이썬) (0) | 2023.04.19 |
[백준] 2156번 포도주(파이썬) (0) | 2023.04.18 |
[백준] 1075번 나누기 (파이썬) (0) | 2023.04.17 |