From d96d701f3427aff60a7fcd310d0710f94d11e9fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Jos=C3=A9=20Guti=C3=A9rrez=20de=20Quevedo=20P=C3=A9?= =?UTF-8?q?rez?= Date: Tue, 15 Dec 2020 10:04:21 +0100 Subject: [PATCH] add day 15 --- 15/1.py | 25 +++++++++++++++++++++++++ 15/2.py | 25 +++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 15/1.py create mode 100644 15/2.py diff --git a/15/1.py b/15/1.py new file mode 100644 index 0000000..e6537dc --- /dev/null +++ b/15/1.py @@ -0,0 +1,25 @@ +content = [2,0,6,12,1,3] + +spoken = {} +new_number = 0 +last_spoken = 0 +turn = 1 +for c in content: + spoken[c] = turn + last_spoken = c + turn += 1 + +was_new = True +for turn in range(len(content) + 1, 2021): + if was_new: + new_spoken = 0 + else: + new_spoken = turn - 1 - last_turn + + was_new = new_spoken not in spoken + if not was_new: + last_turn = spoken[new_spoken] + spoken[new_spoken] = turn + last_spoken = new_spoken + +print(last_spoken) diff --git a/15/2.py b/15/2.py new file mode 100644 index 0000000..3a34463 --- /dev/null +++ b/15/2.py @@ -0,0 +1,25 @@ +content = [2,0,6,12,1,3] + +spoken = {} +new_number = 0 +last_spoken = 0 +turn = 1 +for c in content: + spoken[c] = turn + last_spoken = c + turn += 1 + +was_new = True +for turn in range(len(content) + 1, 30000001): + if was_new: + new_spoken = 0 + else: + new_spoken = turn - 1 - last_turn + + was_new = new_spoken not in spoken + if not was_new: + last_turn = spoken[new_spoken] + spoken[new_spoken] = turn + last_spoken = new_spoken + +print(last_spoken)