diff options
author | Marvin Borner | 2022-12-21 09:50:39 +0100 |
---|---|---|
committer | Marvin Borner | 2022-12-21 09:50:39 +0100 |
commit | 551d0b6018c054f891ffb3c3fb92a65e839c2d51 (patch) | |
tree | 8e5c14bb53c564edc74712a652b66aff257a8b1d /2022/20/solve.py | |
parent | da36b579a724833d166f1076f906adee817b2527 (diff) |
whoo
Diffstat (limited to '2022/20/solve.py')
-rw-r--r-- | 2022/20/solve.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/2022/20/solve.py b/2022/20/solve.py new file mode 100644 index 0000000..6a0a74f --- /dev/null +++ b/2022/20/solve.py @@ -0,0 +1,32 @@ +import numpy as np + +data = [ + (i, int(dat)) + for i, dat in enumerate(open("input").readlines()) + if dat != "" +] +size = len(data) + + +def solve(arr, mult): + for coord in arr[:] * mult: + i = arr.index(coord) + arr.pop(i) + arr.insert((i + coord[1]) % (size - 1), coord) + zero = [coord[1] for coord in arr].index(0) + locs = [1000, 2000, 3000] + return sum(arr[(zero + p) % size][1] for p in locs) + + +def part1(): + copied = data[:] # don't overwrite because part2 + return solve(copied, 1) + + +def part2(): + applied = [(i, dat * 811589153) for i, dat in data] + return solve(applied, 10) + + +print(f"Part 1: {part1()}") +print(f"Part 2: {part2()}") |