142. 나무 자르기
1. Python
n, m = list(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 #최대한 덜 잘랐을 때가 정답이므로, 여기에서 result 기록
start = mid + 1
print(result)
Author And Source
이 문제에 관하여(142. 나무 자르기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@corone_hi/142.-나무-자르기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)