diff options
| author | blenovo <bk@gmail.com> | 2025-08-02 03:13:50 +0200 |
|---|---|---|
| committer | blenovo <bk@gmail.com> | 2025-08-02 03:13:50 +0200 |
| commit | 12f551dbfef138880b29ba6abe4576714ae942cb (patch) | |
| tree | b7d3b20f01df625b8f2be552314133ebe6c0d1d1 /2020/aoc2020-d15.py | |
| parent | 99a7d62c30069a5ffe2210a72c7cf81e76a1f241 (diff) | |
summer warmup sesh part 2
Diffstat (limited to '2020/aoc2020-d15.py')
| -rw-r--r-- | 2020/aoc2020-d15.py | 35 |
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); |
