https://www.acmicpc.net/problem/1920
이분 탐색을 아느냐 정도로만 묻는 간단한 문제다.
내가 앞에서 적은 글 중 이분 탐색을 다루는 내용이 있다 : https://hyeonistic.tistory.com/22
이분 탐색 (Binary Search)
이분 탐색에 대해 논해보자. 둘로 나눠서 검색을 시도하는 이 내용은 n고개 게임에서 쉽게 찾을 수 있다.생각하는 숫자를 n고개 안에 맞추는 게임은 숫자를 제시하면 업, 다운을 제시해서 범위를
hyeonistic.tistory.com
어느 배열을 대상으로 검색해야 할지 다소 혼란스러웠지만 큰 문제는 아니었다.
import sys
def func(arr, target, str, end):
if(str > end):
return 0
if(str == end):
if(target != arr[str]):
return 0
else:
return 1
mid = (str + end) // 2
if arr[mid] == target:
return 1
elif arr[mid] > target:
return func(arr, target, str, mid - 1)
elif arr[mid] < target:
return func(arr, target, mid + 1, end)
# 찾으면 1, 못찾으면 0을 반환해야하는 문제 상황을 반영했다.
n = int(sys.stdin.readline())
listN = list(map(int, sys.stdin.readline().strip().split()))[:n]
m = int(sys.stdin.readline())
listM = list(map(int, sys.stdin.readline().strip().split()))[:m]
listN.sort()
for i in range (len(listM)):
print(str(func(listN, listM[i], 0, len(listN) - 1)))
'문제풀이' 카테고리의 다른 글
[PY] : 2630 색종이 만들기 (0) | 2025.03.22 |
---|---|
[PY] 2805 : 나무 자르기 (0) | 2025.03.21 |
[PY] 1914 : 하노이 탑 (0) | 2025.03.20 |
[PY] 9663 : N-Queen (2) | 2025.03.20 |
[PY] 9020 : 골드바흐의 추측 (0) | 2025.03.20 |