summary refs log tree commit diff stats
path: root/day7.py
blob: 1a2d20671e77e0197d42edd32d4708d927700321 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python

import numpy as np

def triangle(num):
    return (num * (num + 1)) / 2

with open("day7.txt") as data:
    distances = np.array([num for num in map(int, next(data).strip().split(','))]).astype(int)
    # part 1
    median = np.median(distances)
    print(np.sum(np.abs(distances - median).astype(int)))

    # part 2
    minim, maxim = np.amin(distances), np.amax(distances)
    least_dist = None
    for i in range(minim, maxim + 1):
        dist = np.sum(triangle(np.abs(distances - i)).astype(int))
        if least_dist is None or least_dist > dist:
            least_dist = dist
    print(least_dist)