summaryrefslogtreecommitdiff
path: root/2020/aoc2020-d15.py
diff options
context:
space:
mode:
Diffstat (limited to '2020/aoc2020-d15.py')
-rw-r--r--2020/aoc2020-d15.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/2020/aoc2020-d15.py b/2020/aoc2020-d15.py
new file mode 100644
index 0000000..10910fe
--- /dev/null
+++ b/2020/aoc2020-d15.py
@@ -0,0 +1,35 @@
+#advent of code 2020
+#day 15
+#it took less than 1min to bruteforce part 2 so I guess it's a free star
+
+limit1 = 2020;
+limit2 = 30000000;
+turn = 0;
+SpokenNumbers = dict();
+StartingNumbers =[int(N) for N in open("15.in","r").read().split(",")];
+for i,n in enumerate(StartingNumbers[:-1]):
+ turn += 1;
+ SpokenNumbers[n] = i+1;
+ #LastNumber = n;
+ print(turn,n);
+
+p1 = None;
+p2 = None;
+turn += 1;
+LastNumber = StartingNumbers[-1];
+
+while turn < limit2:
+ turn += 1;
+ if LastNumber in SpokenNumbers:
+ speak = turn -1 - SpokenNumbers[LastNumber];
+ else:
+ speak = 0;
+ SpokenNumbers[LastNumber] = turn -1;
+ LastNumber = speak;
+ print(turn, speak); #since it's a bruteforce I'm leaving it as a progress bar
+ if turn == limit1:
+ p1 = LastNumber;
+
+p2 = LastNumber;
+print("part 1 = ", p1);
+print("part 2 = ", p2);