From 8b154828669acb002148988cfebad586c680ff36 Mon Sep 17 00:00:00 2001 From: Cody Hiar Date: Fri, 16 Apr 2021 12:03:47 -0600 Subject: day 15 part 1 --- day15/day15.py | 32 ++++++++++++++++++++++++++++++++ day15/input | 1 + 2 files changed, 33 insertions(+) create mode 100644 day15/day15.py create mode 100644 day15/input diff --git a/day15/day15.py b/day15/day15.py new file mode 100644 index 0000000..a5660a4 --- /dev/null +++ b/day15/day15.py @@ -0,0 +1,32 @@ +"""Day 15.""" + + +# reading off numbers +# starting numbers in input +# consider the most recently spoken number + +# new unique numbers mean the current says zero +# how far aprat the previous spoken one was + + +with open("input") as f: + memory = list(map(int, f.read().rstrip().split(","))) + +last_pos = {val: pos + 1 for pos, val in enumerate(memory)} + +pos = len(memory) + 1 +for x in range(2020 - pos + 1): + last = memory[-1] + if memory.count(last) == 1: + memory.append(0) + else: + x = pos - 1 + y = last_pos[last] + val = x - y + memory.append(val) + last_pos[last] = x + if val not in last_pos: + last_pos[val] = pos + pos += 1 + +print(memory[-1]) diff --git a/day15/input b/day15/input new file mode 100644 index 0000000..6557303 --- /dev/null +++ b/day15/input @@ -0,0 +1 @@ +0,5,4,1,10,14,7 -- cgit v1.2.3