Search
Duplicate
🥈

나무 자르기

주차
14
문제번호
2805
언어
Python
티어
실버
유형
이분탐색
nj_Blog
O
nj_상태
완료
이해도
풀이
사람
이해도 2
13 more properties

문제링크

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

코드 제출 기록 (메모리 및 시간)

메모리 : 271608 KB
시간 : 548 ms

Code

N, M = map(int, input().split()) tree=list(map(int, input().split())) tree.sort() left = 0 right = 0 for i in range(N): if right < tree[i]: right = tree[i] while (left <= right): mid = (left + right) // 2 cut = 0 for i in range(N): if (tree[i] >= mid): cut += tree[i] - mid if cut >= M: answer = mid left = mid + 1 else: right = mid - 1 print(answer)
Python
복사

메모

1.
tree 배열을 오름차순 정렬한다
2.
mid 와 M을 비교하면서 이분 탐색
while( left <= right )으로 해야 됨!!!!!