문제 링크
https://www.acmicpc.net/problem/1654
1654번: 랜선 자르기
첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그
www.acmicpc.net
풀이
- 이분 탐색 문제
- start = 1 , end = 가장 긴 랜선의 길이
- 이 때 start를 0으로 설정하면 런타임 에러 발생
k, n = map(int,input().split())
data = []
for _ in range(k):
data.append(int(input()))
start = 1
end = max(data)
answer = 0
while start <= end :
mid = (start+end)// 2
cnt = 0
for i in data:
cnt += i // mid
if cnt < n:
end = mid - 1
else :
answer = mid
start = mid + 1
print(answer)
'개발 > algorithm' 카테고리의 다른 글
[백준 1978번] 소수 찾기 -python (0) | 2022.02.12 |
---|---|
[백준 1929번] 소수 구하기 -python (0) | 2022.02.12 |
[백준 1085번] 직사각형에서 탈출 - python (0) | 2022.02.12 |
[백준 2231번] 분해합 - python (0) | 2022.02.12 |
[백준 14503번] 로봇 청소기 -python (0) | 2022.02.10 |