Skip to content

Commit 478e171

Browse files
committed
Solved: 2805 나무 자르기
1 parent d16e09f commit 478e171

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# pypy3
2+
# 시간(ms) : 460
3+
# 공간(KB) : 258500
4+
5+
import sys
6+
input = sys.stdin.readline
7+
8+
def count(h): # h미터로 자르고 남은 나무 길이 합 구하기
9+
n = 0
10+
for tree in trees:
11+
if tree-h > 0:
12+
n+= tree-h
13+
return n
14+
15+
def bs(N):
16+
left = 0
17+
right = trees[-1]
18+
mid = right // 2
19+
20+
while left <= right:
21+
m = count(mid)
22+
if m < N: right = mid-1 # 가져가야하는 길이보다 적은 경우
23+
elif m >= N: left = mid+1 # 가져가야하는 길이보다 많거나 같은 경우 (최대 H를 구해야하므로 중지하지 않고 진행)
24+
mid = (left+right)//2
25+
return mid
26+
27+
28+
k, N = map(int, input().strip().split())
29+
trees = sorted(list(map(int, input().strip().split())))
30+
print(bs(N))

0 commit comments

Comments
 (0)