- 절단기 높이(길이) H, 떡의 개수 N, 떡의 길이 M
- 손님은 6cm만큼의 길이를 가져간다.
- 입력
- 첫째 줄: 떡의 개수 N, 손님이 요청한 떡의 길이 M
- 둘째 줄: 떡의 개별 길이
- 출력
- M만큼의 떡을 얻기 위한 절단기 H 값 구하기.
# 떡의 개수(N)와 요청한 떡의 길이(M)을 입력받기
n, m = map(int, input().split())
# 각 떡의 개별 높이 정보 받기
array = list(map(int, input().split()))
# 이진 탐색을 위한 시작점과 끝점 설정
start = 0
end = max(array)
result = 0
while (start <= end):
total = 0
mid = (start + end) // 2
for x in array:
if x > mid:
total += x - mid
if total < m:
end = mid - 1
# 떡의 양이 충분한 경우 덜 자르기
else:
result = mid
start = mid + 1
print(result)
# 이진 탐색 수행(반복적)
# 4 6
# 19 15 10 17
'CoTe > 이진탐색' 카테고리의 다른 글
부품 찾기 (0) | 2023.05.05 |
---|---|
[이코테]이진 탐색 (0) | 2023.04.28 |