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)
'Algorithm > 백준' 카테고리의 다른 글
Swift) 백준 2579번 계단 오르기 - S3 (0) | 2024.05.26 |
---|---|
Swift) 백준 1697번 숨바꼭질 - S1 (0) | 2024.05.19 |
Swift) 백준 1005번 ACM Craft - G3 (0) | 2024.04.13 |
Swift) 백준 17609번 회문 - G5 (1) | 2024.03.25 |
Swift) 백준 3055번 탈출 - G4 (0) | 2024.03.20 |