동캄의 코딩도장

백준 2805 [나무 자르기] 파이썬 본문

코테/BOJ

백준 2805 [나무 자르기] 파이썬

동 캄 2022. 3. 7. 15:06

https://www.acmicpc.net/problem/2805

 

2805번: 나무 자르기

첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보

www.acmicpc.net

#백준 2805
import sys
import math
input = sys.stdin.readline

answer = 0
N, M = map(int, input().split())
lst = list(map(int, input().split()))
lst.sort()
S = sum(lst)
for i in range(len(lst)):
    answer = max(answer, math.floor((S-M)//(len(lst)-i)))
    S -= lst[i]
print(answer)

list를 정렬하고, 앞에서부터 하나씩 빼면서 필요한 높이의 최대값을 구한다.