https://www.acmicpc.net/problem/1654
1654번: 랜선 자르기
첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그
www.acmicpc.net
[코드]
import sys
K, N = map(int, input().split())
lan_cables = []
for i in range(K):
lan_cables.append(int(sys.stdin.readline()))
left = 1
right = max(lan_cables)
mid = (left + right) // 2
total_sliced_cables_num = 0
while left <= right:
for cable in lan_cables:
total_sliced_cables_num += cable // mid
# 길이가 너무 짧음
if total_sliced_cables_num >= N:
left = mid + 1
mid = (left + right) // 2
# 길이가 너무 김
else:
right = mid - 1
mid = (left + right) // 2
total_sliced_cables_num = 0
print(mid)
'코딩테스트 준비 > [백준]' 카테고리의 다른 글
[백준] 11000번 - 강의실 배정 (파이썬) (0) | 2021.05.13 |
---|---|
[백준] 11047번 - 동전0 (파이썬) (0) | 2021.05.13 |
[백준] 1449번 - 수리공 항승 (파이썬) (0) | 2021.05.13 |
[백준] 4796번 - 캠핑 (파이썬) (0) | 2021.05.11 |
알고리즘 공부 방법/순서 참고 블로그 (0) | 2021.05.08 |