• 절단기 높이(길이) 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

+ Recent posts