https://www.acmicpc.net/problem/1920
import sys
input = sys.stdin.readline
N = int(input())
A = list(map(int, input().split()))
M = int(input())
B = list(map(int, input().split()))
A.sort()
for num in B:
l, r = 0, N-1
isExist = False
#이분 탐색
while l <= r:
mid = (l + r) // 2
if A[mid] == num:
isExist = True
print(1)
break
elif A[mid] < num:
l = mid + 1
else:
r = mid - 1
if not isExist:
print(0)
처음에 선형탐색으로 했더니 시간 초과가 나서 이분 탐색으로 진행하였다.
728x90
'파이썬 알고리즘 문제 풀이' 카테고리의 다른 글
[백준] S1. 2468번 안전영역 / 분류: DFS, BFS (0) | 2024.03.18 |
---|---|
[백준] S4. 카드2 / 분류: 자료구조 (2) | 2024.03.18 |
[프로그래머스] Lv2. 기능 개발 스택/큐 (0) | 2024.03.17 |
[프로그래머스] Lv3. 베스트 앨범 해시 (0) | 2024.03.10 |
[프로그래머스] Lv2. 의상 파이썬 해시 (0) | 2024.02.29 |