🗝️ Algorithm/🟩 백준
[백준] [Python] 1920번_수 찾기
Dbswnstjd
2022. 3. 19. 19:51
https://www.acmicpc.net/problem/1920
1920번: 수 찾기
첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들
www.acmicpc.net
풀이
# 백준 1920번 문제 - 수 찾기
def binary_search(element, some_list, start = 0, end=None):
if end == None:
end = len(some_list) - 1
if start > end:
return 0
mid = (start + end) // 2
if element == some_list[mid]:
return 1
elif element < some_list[mid]:
end = mid - 1
elif element > some_list[mid]:
start = mid + 1
return binary_search(element, some_list, start, end)
n = int(input())
n_list = list(map(int, input().split(' ')))
n_list.sort()
m = int(input())
m_list = list(map(int, input().split(' ')))
for i in range(len(m_list)):
print(binary_search(m_list[i], n_list))
이진 탐색을 통해 문제 해결
n 의 범위가 100,000 이기 때문에 in 을 사용하여 문제를 풀게 되면 시간초과가 나게 된다.