728x90
반응형
이분 탐색 문제이다.
def bs(li, n):
s, e = 0, len(li)-1
while s <= e:
m = (s+e)//2
if li[m] == n:
return 1
elif li[m] < n:
s = m+1
else:
e = m-1
return 0
for _ in range(int(input())):
N = int(input())
li1 = sorted(list(map(int, input().split())))
M = int(input())
li2 = list(map(int, input().split()))
for n in li2:
print(bs(li1, n))
그냥도 풀어봤다. 아이러니하게도 아래 코드가 속도가 더 빠르다.
for _ in range(int(input())):
N = int(input())
li1 = set(map(int, input().split()))
M = int(input())
li2 = list(map(int, input().split()))
for n in li2:
print(1 if n in li1 else 0)
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 6236번 용돈 관리(python) (0) | 2021.02.26 |
---|---|
백준 알고리즘 3079번 입국심사(python) (0) | 2021.02.26 |
백준 알고리즘 2428번 표절(python) (2) | 2021.02.26 |
백준 알고리즘 2417번 정수 제곱근(python) (0) | 2021.02.26 |
백준 알고리즘 2343번 기타 레슨(python) (0) | 2021.02.26 |