We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 4f6993c commit 01eac32Copy full SHA for 01eac32
1 file changed
심수연/3주차/260114.py
@@ -0,0 +1,31 @@
1
+# https://www.acmicpc.net/problem/2805
2
+
3
+import sys
4
+input = sys.stdin.readline
5
6
+N, M = map(int, input().split())
7
8
+tree = list(map(int, input().split()))
9
10
+start = 0
11
+end = max(tree) - 1
12
13
+answer = 0 # 절단기 높이의 최댓값
14
15
+while start <= end:
16
+ mid = (start + end) // 2 # mid는 절단기 높이
17
18
+ goal = 0 # 집으로 가져갈 나무의 길이
19
+ for i in tree:
20
+ if i >= mid:
21
+ goal += i - mid # 절단기로 자르고 남은만큼 추가
22
+ if goal >= M: # 이미 충분하면 break
23
+ break
24
25
+ if goal >= M: # 나무의 총 길이가 목표치 M보다 길거나 같으면, 절단기 높이를 유지하거나 높여야 함.
26
+ answer = mid # 절단기 높이로 설정
27
+ start = mid + 1 # 더 높게 탐색
28
+ else:
29
+ end = mid - 1 # 더 짧게 탐색
30
31
+print(answer) # 절단기 높이의 최대치
0 commit comments