๐ญ ๋ฌธ์ ์ดํด
์์์ด๊ฐ ๊ฐ์ง๊ณ ์๋ K๊ฐ์ ๋์ ์ N๊ฐ ์ด์์ ๋์ผํ ๊ธธ์ด์ ์ ๋ค๋ก ๋ง๋ค๊ธฐ ์ํด
์๋ฅผ ๊ธธ์ด๋ฅผ ์ฐพ์์ผํ๋ ๋ฌธ์ ์ด๋ค.
๋์ ์ ๊ธธ์ด๋ ์ต๋ 231-1๋ก ์์ ํ์์ ํ๊ฒ ๋๋ฉด ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค.
์ด๋ถํ์์ ํตํด์ ๋ฌด๋ฆฌ ์์ด ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์ด๋ค.
๊ตฌํ ์ธ์ด: Python
import sys
from collections import Counter
r = sys.stdin.readline
def binary_search(target_cnt: int, lines: list) -> int:
result = 0
left = 1
right = max(lines)
while left <= right:
mid = (left + right) // 2
# mid ๊ธธ์ด ๊ธฐ์ค์ผ๋ก ๋ง๋ค์ด์ง ๋์ ์ ์
made = sum(line // mid for line in lines)
if target_cnt <= made:
result = mid
left = mid + 1
else:
right = mid - 1
return result
k, n = map(int, r().split())
lines = [int(r()) for _ in range(k)]
print(binary_search(n, lines))
'Problem_Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๋ฐฑ์ค 1764 ๋ฃ๋ณด์ก / ์ด๋ถํ์ (0) | 2021.02.11 |
---|---|
[BOJ] ๋ฐฑ์ค 10816 ์ซ์ ์นด๋ 2 / ์ด๋ถํ์ (0) | 2021.02.09 |
[BOJ] ๋ฐฑ์ค 10815 ์ซ์ ์นด๋ / ์ด๋ถํ์ (0) | 2021.02.09 |
[BOJ] ๋ฐฑ์ค 2805 ๋๋ฌด ์๋ฅด๊ธฐ / ์ด๋ถํ์ (0) | 2021.02.09 |
[BOJ] ๋ฐฑ์ค 1920 ์ ์ฐพ๊ธฐ / ์ด๋ถํ์ (0) | 2021.02.09 |