019.装满空间:给定一个顺序排列的列表sizes和数字n,分别代表顺序存储的文件大小和磁盘容量,请编写一个函数,求出该磁盘最多可以顺序存储几个文件。
题目来源:codcwars
# @-*- coding: utf-8 -*-
# @File: python每期一练1026.py
# @Time: 2021/10/26 17:13
# @Author: 师玉幺叔
# @Software: Pycharm
print(end='')
"""
给定一个顺序排列的列表sizes和数字n,分别代表顺序存储的文件大小和磁盘容量,请编写一个函数,求出该磁盘最多可以顺序存储几个文件。
示例:
输入:([4, 4, 4, 3, 3], 12), 输出:3。因为4+4+4<=12可以存下,而4+4+4+3 > 12存不下。
题目难度:简单
"""
def save(sizes: list, n: int) -> int:
count = 0
sum_size = 0
for size in sizes:
sum_size += size
if sum_size > n:
return count
count += 1
return len(sizes)
if __name__ == '__main__':
assert save([4, 4, 4, 3, 3], 12) == 3
assert save([4, 8, 15, 16, 23, 42], 108) == 6
assert save([11, 13, 15, 17, 19], 8) == 0
# print(save([4, 4, 4, 3, 3], 12))
# print(save([4, 8, 15, 16, 23, 42], 108))
# print(save([11, 13, 15, 17, 19], 8))