์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด
[๋ฐฑ์ค 1654] swift ๋์ ์๋ฅด๊ธฐ
iosun
2023. 3. 29. 20:48
๋ฌธ์ ์ค๋ช
๋ฌธ์ ํ์ด
์ฒ์ ์ ๊ทผ๋ฒ์ ๊ธธ์ด๊ฐ 100์ด๋ผ๊ณ ๊ฐ์ ํ๊ณ n๊ฐ ์ด์์ ๋์ ์ด ๋์ค๋์ง ์ฒดํฌ,
100 -> 200 -> 300 ๋๋ ค๊ฐ๋ฉฐ ์๊ฐํ๋ค ์ด์งํ์์ ๋ ์ฌ๋ฆฌ๊ฒ ๋์๋ค. (์์ ํ์๋ณด๋ค ์๋๊ฐ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์)
left๋ 1, right๋ ๊ฐ์ง๋์ ์ ์ต๋๊ธธ์ด๋ก ๋์๋ค.
๊ธฐ๋ณธ์ ์ธ ์ด์งํ์ ํ์ด๋ก ๋ฌธ์ ํด๊ฒฐ!
์ฝ๋
import Foundation
let input = readLine()!.split(separator: " ").map {Int(String($0))!}
let k = input[0], n = input[1]
var arrs = [Int]()
for _ in 0..<k {
arrs.append(Int(readLine()!)!)
}
var left = 1
var right = arrs.max()!
var answer = 0
while left <= right {
let mid = (left+right) / 2
var sum = 0
for arr in arrs {
sum += arr/mid
}
if sum >= n {
answer = mid // n๊ฐ์ด์ ๋์ ์ ๊ตฌํ ์ ์๋ ๊ฒฝ์ฐ answer์ ์ ์ฅ
left = mid + 1
} else {
right = mid - 1
}
}
print(answer)