Hanbit the Developer
[탐색] Python - 1920번 수 찾기 본문
def isThere(List, num):
left, right = 0, len(List)-1
while left <= right:
mid = (left+right)//2
if List[mid]>num:
right = mid - 1
elif List[mid]<num:
left = mid + 1
else:
return 1
return 0
N = int(input())
A = list(map(int, input().split()))
M = int(input())
B = list(map(int, input().split()))
A.sort()
for b in B:
print(isThere(A, b))
사실, 더 빠른 풀이들이 있으나(가령, Dictionary를 통해 Index로 바로 접근하기 등)
해당 문제의 난이도가 낮으므로 정석적인 풀이를 지향하였다.
'Algorithm > 백준' 카테고리의 다른 글
[그리디] Python - 1946번, 신입 사원 (0) | 2021.03.03 |
---|---|
[문자열] Python - 2941번 크로아티아 알파벳 (0) | 2021.03.02 |
[DP] Python - 11054번 가장 긴 바이토닉 부분 수열 (0) | 2021.02.26 |
[그리디] Python - 2217번 로프 (0) | 2021.02.22 |
[문자열] Python - 1013번 Contact (0) | 2021.02.21 |