01. 부품 찾기
import sys
input=sys.stdin.readline
def binary_search(arr,target,start,end):
while start<=end:
mid=(start+end)//2
if arr[mid]==target:
return mid
elif arr[mid]>target:
end=mid-1
else:
start=mid+1
return None
n=int(input())
arr1=list(map(int,input().split()))
arr1.sort() # 이진 탐색을 위한 정렬 수행
m=int(input())
arr2=list(map(int,input().split()))
for val in arr2:
result=binary_search(arr1,val,0,n-1)
if result!=None:
print('yes',end=" ")
else:
print('no',end=" ")
02. 떡볶이 떡 만들기
import sys
input=sys.stdin.readline
n,m=map(int,input().split())
ddeoks=list(map(int,input().split()))
start=0
end=max(ddeoks)
result=0
while start<=end:
mid=(start+end)//2
total=0
for ddeok in ddeoks:
if ddeok>mid:
total+=ddeok-mid
if total<m:
end=mid-1
else:
start=mid+1
result=mid
print(result)