class Solution:
def maxLength(self, ribbons: List[int], k: int) -> int:
def possible(size):
num_rib = 0
for rib in ribbons:
num_rib += rib // size
return num_rib
left = 1
right = max(ribbons)
res = 0
while left <= right:
mid = (left + right) // 2
if possible(mid) < k :
right = mid - 1
else:
res = mid
left = mid + 1
return res


![[LeetCode]Medium - Cutting Ribbons - python [LeetCode]Medium - Cutting Ribbons - python](http://www.mshxw.com/aiimages/31/488677.png)
