백준 1654 [python]
https://www.acmicpc.net/problem/1654
import sys
def binary_search(start, end, k):
global res
if start > end:
return
wire_len = (end + start) // 2
cnt = 0
for wire in wires:
cnt += wire // wire_len
if cnt < k:
binary_search(start, wire_len - 1, k)
else:
res = wire_len
binary_search(wire_len + 1, end, k)
n, k = map(int, input().split())
wires = []
for i in range(n):
wires.append(int(sys.stdin.readline()))
res = 0
binary_search(1, max(wires), k)
print(res)
이분 탐색 알고리즘을 알고 있는데도 풀 방법을 생각해 내지 못했다. 사실 매개변수 탐색 알고리즘까지 구글링하고 코드를 짰다. 멍청한 느낌이 들었다.
Author And Source
이 문제에 관하여(백준 1654 [python]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@seokcoding/백준-1654-python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)