나무 자르기

    백준 2805 풀이 (나무 자르기, 이분 탐색)

    백준 2805 풀이 (나무 자르기, 이분 탐색)

    문제는 그냥 머랄까 톱이 하나 있고 높이를 정해서 일괄적으로 잘라버린다. 이후에 잘린 나머지의 값의 합이 m보다 크게 만드는 최댓값을 구하면된다. 이분 탐색으로 높이를 탐색하며 적절한 높이를 구하면된다. 저번 문제와 아주 유사해서 딱히 중요한게 없었다. 1. L과 R을 정한다. 2. mid값으로 일괄적으로 자르고 남은 값이 m보다 큰지 비교한다. 3. L과 R을 갱신한다. n,m = map(int, input().split()) tree = list(map(int,input().split())) l = 0 r = max(tree) mid = (l+r+1)//2 while l != r: # clac sum = 0 for t in tree: tmp = t - mid if tmp > 0: sum += (t-m..