미소를뿌리는감자의 코딩
[백준 2024/02/24] 1645번 랜선 자르기 본문
728x90
https://www.acmicpc.net/problem/1654
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 |