컴공생의 다이어리
[파이썬, Python] 백준 1654번 : 랜선 자르기 본문
백준 1654번 : 랜선 자르기
내 코드
import sys
input = sys.stdin.readline
# k : 이미 가지고 있는 랜선의 개수, n : 필요한 랜선의 개수
k, n = map(int, input().split())
lan_cable = [int(input()) for _ in range(k)]
answer = 0 # 랜선의 최대 길이
start, end = 1, max(lan_cable)
while start <= end:
mid = (start + end) // 2
temp_sum = 0
for i in lan_cable: # mid 길이만큼 랜선 케이블들을 조각냄
temp_sum += i // mid
if temp_sum >= n: # 랜선의 개수가 n이상이면
start = mid + 1
answer = mid
else: # 랜선의 개수가 n미만이면
end = mid - 1
print(answer)
728x90
'Development > Algorithm & Coding Test' 카테고리의 다른 글
[파이썬, Python] 백준 2015번 : 수들의 합 4 (0) | 2022.07.08 |
---|---|
[파이썬, Python] 백준 17352번 : 여러분의 다리가 되어 드리겠습니다! (0) | 2022.07.07 |
[프로그래머스] 짝지어 제거하기 - 파이썬(Python) (0) | 2022.07.05 |
[프로그래머스] 예상 대진표 - 파이썬(Python) (0) | 2022.07.04 |
[프로그래머스] 폰켓몬 - 파이썬(Python) (0) | 2022.07.03 |
Comments