Algorithm/백준
Swift) 백준 2805번 나무 자르기 - S2
콩벌레 개발자
2024. 5. 26. 12:14
https://www.acmicpc.net/problem/2805
이분 탐색을 이용하여 자르는 부분의 범위를 구하는 문제.
import Foundation
let nm = readLine()!.split(separator: " ").map{Int($0)!}
let treeArr = readLine()!.split(separator: " ").map{ Int($0)! }
var start = 1
var end = treeArr.max()!
while start <= end {
let mid = (start+end)/2
var count = 0
for tree in treeArr {
if tree > mid {
count += tree-mid
}
}
if count >= nm[1] {
start = mid+1
} else {
end = mid-1
}
}
print(end)