1654.랜선 자르기
- 내 풀이
- 랜선 길이를 mid로 잡고
- 만들어질 수 있는 갯수 체크
- 필요한 n개보다 많거나 같으면 -> 현재 랜선 길이 mid가 너무 짧은 것
- max값으로 저장 후
- l= mid+1
- 필요한 갯수보다 적으면 -> 현재 랜선길이 mid가 너무 긴 것
- r=mid-1
- 📍주의
- 처음 랜선길이 l=0 으로 잡으면 zeroDivizonError 날 수 있음
- l=1 로 잡아야함
k, n = map(int, input().split())
lans = [int(input()) for _ in range(k)]
l = 0
r = max(lans)
ans = 0
while l <= r:
mid = (l+r)//2
cnt = 0
for lan in lans:
cnt += (lan//mid)
if cnt >= n:
ans = max(ans, mid)
l = mid+1
else:
r = mid-1
print(ans)
'코딩테스트 > BOJ' 카테고리의 다른 글
| [백준][DP] RGB 거리 (0) | 2026.02.16 |
|---|---|
| [백준][DP] 설탕 배달 (0) | 2026.02.16 |
| [백준][다익스트라] 1753. 최단 경로 (0) | 2025.09.26 |
| [백준][DP] 2839. 설탕 배달 (0) | 2025.09.22 |
| [백준][이분탐색] 10816. 숫자 카드2 (0) | 2025.09.04 |