미소를뿌리는감자의 코딩
[백준 2024/02/24] 1645번 랜선 자르기 본문
728x90
https://www.acmicpc.net/problem/1654
1654번: 랜선 자르기
첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그
www.acmicpc.net
1. 접근 방법
자를 수 있는 제일 작은 랜선의 길이 = 1
자를 수 있는 제일 큰 랜선의 길이 = max(lines) 가 될 것이다.
이후 이를 기준으로 binary search를 진행하였다.
2. 코드
def max_length(lines, n):
max_line = max(lines)
min_line = 1
while min_line <= max_line:
cut = (min_line + max_line) // 2
total = 0
for line in lines:
total += line//cut
if total < n:
max_line = cut -1
else:
min_line = cut + 1
return max_line
def main():
k, n = map(int, input().split())
lines = []
for _ in range(k):
lines.append(int(input()))
print(max_length(lines, n))
if __name__ == "__main__":
main()
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준 2024/02/26] 1956번 운동 (1) | 2024.02.26 |
---|---|
[백준 2024/02/26] 1753번 최단경로 (0) | 2024.02.26 |
[백준 2024/02/25] 2805번 나무 자르기 (1) | 2024.02.25 |
[백준 2024/02/24] 2512번 예산 (1) | 2024.02.25 |
[백준 2024/02/23] 2212번 센서 (0) | 2024.02.23 |