1. 문제
https://www.acmicpc.net/problem/1654
1654번: 랜선 자르기
첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그
www.acmicpc.net
2. 풀이
import sys
input = sys.stdin.readline
# k : 가지고 있는 랜선의 수
# n : 필용한 랜선의 수
k, n = map(int, input().split())
# kList : 가지고 있는 랜선의 길이 리스트
kList = [int(input()) for i in range(k)]
low, high = 1, max(kList) + 1
while True:
lineCnt = 0
midNum = (low + high) // 2
for i in kList:
lineCnt += i // midNum
if lineCnt >= n:
low = midNum
else:
high = midNum
if high - low == 1:
break
print(low)
'알고리즘 공부 > 백준' 카테고리의 다른 글
(Python)백준 코딩테스트 연습 - 크로스워드(1706) (2) | 2023.04.30 |
---|---|
(Python)백준 코딩테스트 연습 - 제곱수의 합(1699) (0) | 2023.04.28 |
(Python)백준 코딩테스트 연습 - 단축키 지정(1283) (0) | 2023.04.25 |
(Python)백준 코딩테스트 연습 - 팩토리얼5(1564) (0) | 2023.04.23 |
(Python)백준 코딩테스트 연습 - 잃어버린 괄호(1541) (0) | 2023.04.20 |