Advent of code

 2 décembre 2015 

  I Was Told There Would Be No Math :
  1. code.py
import math

data = [ [4,23,21], [22,29,19], ..., [23,11,5] ]

def aire(a,b,c):
    return 2*(a*b + b*c + c*a) + min(a*b,b*c,c*a)


def ruban(triplet):
    triplet = triplet[:]  # éviter de modifier le triplet d'origine au cas où, en faisant une copie
    triplet.sort()
    return 2*sum(triplet[:2]) + math.prod(triplet)


sommeAire = 0
sommeRuban = 0
for triplet in data:
    sommeAire += aire(*triplet)
    sommeRuban += ruban(triplet)

print(sommeAire, sommeRuban)




#### Methode ne demandant pas de lister tous les produits de deux nombres ####
####   (utile si l'on devait faire ça avec plus que trois elements)       ####

from itertools import combinations
from math import prod

def aire2(triplet):
       produits = list(map(prod, combinations(triplet,2)))
       return 2*sum(produits) + min(produits)