-
[알고리즘] 백준 1654 - 랜선 자르기알고리즘 2022. 8. 16. 17:14728x90
문제
접근
1. 이코테의 떡볶이 떡 자르기와 비슷하다
2. 다만 다른점은 떡볶이 떡 자르기는 자르고 났을때의 남은 떡의 양을 비교하는 반면에 이 문제는 n개의 랜선으로 나와야 한다는 점이다.
3. 방식은 같은데 배열에 있는 모든 랜선들을 mid 값으로 나눠서 total에 저장을 하고 그 값을 n의 개수와 비교해서 start, end의 위치를 옮긴다.
풀이
# 랜선 자르기 - 떡볶이 떡 자르기랑 비슷 import sys input = sys.stdin.readline k, n = map(int, input().split()) array = [] for i in range(k): array.append(int(input())) start = 1 end = max(array) while start <= end: mid = (start+end) // 2 total = 0 for x in array: total += x // mid # 전부 mid로 나눠서 나오는 갯수를 체크 if total >= n: # n은 나눠져야할 총 랜선의 개수 start = mid + 1 else: end = mid - 1 print(end)
'알고리즘' 카테고리의 다른 글
[알고리즘] Facebook 인터뷰 - 문자열 재정렬 (0) 2022.08.20 [알고리즘] 백준 - 18406 럭키 스트레이트 (0) 2022.08.20 [알고리즘] 백준 1920 - 수 찾기 (0) 2022.08.16 [알고리즘] 백준 2805 - 나무자르기 (0) 2022.08.16 [알고리즘] 백준 6236 - 용돈 관리 (0) 2022.08.16