본문 바로가기

프로그래밍

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 1. Sort
# 2. 파이썬 : 시간초과 Pypy : 1504 ms
# 3. 위에서 아래로 순서대로 나무 자르기
 
def solution():
    N, M = map(int, input().split())
    lst = list(map(int, input().split()))
    lst.sort()
    woods = 0
    index = len(lst)-1
    height = lst[index]
 
    while True:
        # 나무 자르기
        woods += len(lst) - 1 - index
 
        #길이 확인
        if woods >= M:
            break
 
        else:
            height -=1
            while lst[index] > height and index>=0:
                index -= 1
    print(height)
 
solution()