728x90
반응형
1. 문제요약 (1654. 랜선 자르기)
1654번: 랜선 자르기
첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그
www.acmicpc.net
2. 풀이를 위한 부연 설명
- 이분탐색을 이용하는 정석적인 문제이다.
- 원하는 개수의 랜선이 나왔다면
- 해당하는 길이보다 더 작게 잘라도 원하는 개수만큼의 랜선이 나오는지 탐색하고
- 아니라면 자르려는 길이를 수정한다.
3. 코드
<python />
import sys
input = sys.stdin.readline
k, n = map(int, input().split())
lines = [int(input()) for _ in range(k)]
start = 1
end = max(lines)
while start <= end:
mid = (start + end) // 2
cnt = 0
for l in lines:
cnt += l // mid
if cnt >= n:
start = mid + 1
else:
end = mid - 1
print(end)
4. 기억할 점
- 이분탐색 유형의 코드를 기억하자
반응형
'코딩 테스트 > 파이썬 문제 풀이' 카테고리의 다른 글
[백준] 2343번 파이썬 - 이분 탐색 (상세 설명) (1) | 2024.02.28 |
---|---|
[백준] 13164번 파이썬 - 그리디, 정렬 (0) | 2024.02.27 |
[백준] 2800번 파이썬 - 스택, 조합 (0) | 2024.02.26 |
[백준] 1918번 파이썬 - 스택 (1) | 2024.01.27 |
[백준] 16113번 파이썬 - 문자열, 구현 (1) | 2024.01.25 |