mirror of
https://github.com/bertptrs/adventofcode.git
synced 2025-12-25 21:00:31 +01:00
Use itertools for better readability.
This commit is contained in:
@@ -2,6 +2,7 @@ from __future__ import print_function
|
|||||||
import fileinput
|
import fileinput
|
||||||
from operator import mul
|
from operator import mul
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
|
import itertools
|
||||||
|
|
||||||
totalArea = 0
|
totalArea = 0
|
||||||
totalRibbon = 0
|
totalRibbon = 0
|
||||||
@@ -9,10 +10,9 @@ for line in fileinput.input():
|
|||||||
parts = [int(i) for i in line.split('x')]
|
parts = [int(i) for i in line.split('x')]
|
||||||
parts.sort()
|
parts.sort()
|
||||||
|
|
||||||
sides = [parts[0] * parts[1], parts[0] * parts[2], parts[1] * parts[2]]
|
sides = [x * y for x, y in itertools.combinations(parts, 2)]
|
||||||
totalArea += 2 * sum(sides)
|
totalArea += 2 * sum(sides) + min(sides)
|
||||||
|
|
||||||
totalArea += min(sides)
|
|
||||||
totalRibbon += 2 * (parts[0] + parts[1])
|
totalRibbon += 2 * (parts[0] + parts[1])
|
||||||
totalRibbon += reduce(mul, parts, 1)
|
totalRibbon += reduce(mul, parts, 1)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user