import shared from collections import Counter def get_paper(l,w,h): sides = [ (l*w), (w*h), (h*l) ] smallest = min(sides) sides = [2*x for x in sides] sides.append(smallest) return sum(sides) def pt1(boxes): box_papers = [] for box in boxes: size = get_paper(*box) box_papers.append(size) print(sum(box_papers)) def get_ribbon(l,w,h): dims = sorted([l,w,h])[:-1] ribbon = sum([2*x for x in dims]) ribbon += (l*w*h) return ribbon def pt2(boxes): box_ribbons = [] for box in boxes: size = get_ribbon(*box) box_ribbons.append(size) print(sum(box_ribbons)) def main(): test = [[2,3,4]] pt1(test) pt2(test) print('---') with open(shared.get_fname(2), "r") as f: inp = [x.rstrip() for x in f.readlines()] boxes = [list(map(int,x.split("x"))) for x in inp] pt1(boxes) pt2(boxes) if __name__ == "__main__": main()