def sequential_search(target, array):
for i in range(len(array)):
if array[i] == target:
return i
else:
return 0
def recursive_binary_search(array, start, end, target):
if start > end:
return None
mid = (start + end) // 2
if array[mid] == target:
return mid
elif array[mid] > target:
recursive_binary_search(array, mid + 1, end, target)
else:
recursive_binary_search(array, start, mid - 1, target)
def recursive_binary_search(array, start, end, target):
while start <= end:
mid = (start + end) // 2
if array[mid] == target:
return mid
elif array[mid] > target:
end = mid - 1
else:
start = mid + 1
동빈이네 전자 매장에는 부품이 N개 있음
각 부품은 정수 형태의 고유한 번호가 있음
어느 날 손님이 M개의 종류의 부품을 대량으로 구매하겠다며 당일 날 견적서를 요청
동빈이는 때를 놓치지 않고 손님이 문의한 부품 M개 종류를 모두 확인해서 견적서를 작성해야 함
이때 가게 안에 부품이 모두 있는지 확인하는 프로그램을 작성
N=5
[8, 3, 7, 9, 2]
손님은 총 3개의 부품이 있는지 확인 요청했는데 부품 번호는 다음과 같음
M=3
[5, 7, 9]
이때 손님이 요청한 부품 번호의 순서대로 부품을 확인해 부품이 있으면 yes를 없으면 no를 출력
def recursive_binary_search(array, start, end, target):
while start <= end:
mid = (start + end) // 2
if array[mid] == target:
return True
elif array[mid] > target:
end = mid - 1
else:
start = mid + 1
return False
n = int(input())
goods = list(map(int, input().split()))
m = int(input())
order = list(map(int, input().split()))
goods.sort()
cnt = 0
for item in order:
if recursive_binary_search(goods, 0, n-1, item):
print("yes", end=" ")
else:
print("no", end=" ")
# 이진 탐색 사용하지 않고 하는 법
n = int(input())
goods = list(map(int, input().split()))
m = int(input())
order = list(map(int, input().split()))
goods.sort()
cnt = 0
for item in order:
if item in goods:
print("yes", end=" ")
else:
print("no", end=" ")
n, m = map(int, input().split())
ricecake = list(map(int, input().split()))
ricecake.sort(reverse=True)
done = False
while not done:
mid = (0 + n) // 2
sum = 0
for i in range(0, mid):
sum += ricecake[i] - ricecake[mid]
if sum > m:
mid = (0 + mid) // 2
elif sum < m:
mid = (mid + n) // 2
else:
done = True
print(ricecake[mid])