๋ฌธ์ ์ค๋ช
๋ฌธ์ ํ์ด
์ฒ์ ์ ๊ทผ๋ฒ์ ๊ธธ์ด๊ฐ 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)
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค 86971] ์ ๋ ฅ๋ง์ ๋๋ก ๋๋๊ธฐ swift (2) | 2023.10.13 |
---|---|
[๋ฐฑ์ค 1743] swift ์์๋ฌผ ํผํ๊ธฐ: DFS (0) | 2023.04.05 |
[ํ๋ก๊ทธ๋๋จธ์ค] 3์ฐจ ์์ถ swift (0) | 2023.03.22 |
[๋ฐฑ์ค 9935] swift ๋ฌธ์์ด ํญ๋ฐ (1) | 2023.03.21 |
[ํ๋ก๊ทธ๋๋จธ์ค] swift ์คํฐ์ปค ๋ชจ์ผ๊ธฐ(2) (0) | 2023.03.08 |