sm 기술 블로그
178. 2805(나무 자르기) - 파이썬 본문
※PyPy로 제출한 코드입니다.
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
tree = list(map(int, input().split()))
start = 1
end = max(tree)
while(end - start >= 0):
mid = (start + end) // 2
cutTree = 0
for val in tree:
tmp = val - mid
if(tmp > 0):
cutTree += tmp
if(cutTree >= M):
start = mid + 1
else:
end = mid - 1
print(end)
문제요약
주어진 나무들을 잘라 원하는 크기로 만들고자 한다.
설명
전 문제의 랜선자르기와 굉장히 유사하다.
https://smhope.tistory.com/472?category=1058420
다른 점은
for val in tree:
tmp = val - mid
if(tmp > 0):
cutTree += tmp
자르는 것은 -이다.
잘랐을 경우 음수가 나올 수 있으므로 음수가 아닌 값들만 cutTree에 저장한다.
'문제 > 백준_파이썬' 카테고리의 다른 글
180. 1300(K번째 수) - 파이썬 (0) | 2022.08.17 |
---|---|
179. 2110(공유기 설치) - 파이썬 (0) | 2022.08.16 |
177. 1654(랜선 자르기) - 파이썬 (0) | 2022.08.15 |
176. 1920(수 찾기) - 파이썬 (0) | 2022.08.14 |
175. 25305(커트라인) - 파이썬 (0) | 2022.08.13 |
Comments