백준 알고리즘 - 2805. 나무 자르기
2024. 3. 6. 18:53ㆍ코딩 테스트/백준
https://www.acmicpc.net/problem/2805
2805번: 나무 자르기
첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보
www.acmicpc.net
전체 풀이
# Code
def solution(trees: list, m):
result = 0
low, high = 1, sum(trees)
while low <= high:
mid = (low + high) // 2
tree_amount = sum([tree - mid for tree in trees if tree > mid])
if tree_amount >= m:
low = mid + 1
result = mid
else:
high = mid - 1
return result
# --- submit ---
n, m = map(int, input().split())
heights = list(map(int, input().split()))
print(solution(heights, m))
'코딩 테스트 > 백준' 카테고리의 다른 글
백준 알고리즘 3986. 좋은 단어 (0) | 2024.03.08 |
---|---|
백준 알고리즘 9012. 괄호 (0) | 2024.03.08 |
백준 알고리즘 - 1654. 랜선 자르기 (0) | 2024.03.06 |
백준 알고리즘 - 1920. 수 찾기 (0) | 2024.03.06 |
백준 알고리즘 - 2566. 최댓값 (0) | 2024.03.06 |