From 041b87cd05f56c4fbbba63dd251842735dc6879e 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:21:30 +0100 Subject: [PATCH] a bit simplified solution --- 15/1.py | 18 +++++++----------- 15/2.py | 18 +++++++----------- 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/15/1.py b/15/1.py index e6537dc..71d0cd9 100644 --- a/15/1.py +++ b/15/1.py @@ -1,25 +1,21 @@ content = [2,0,6,12,1,3] spoken = {} -new_number = 0 -last_spoken = 0 +new_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: +last_turn = 0 +while turn <= 2020: + if not last_turn: 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] + last_turn = spoken.get(new_spoken, 0) spoken[new_spoken] = turn - last_spoken = new_spoken + turn += 1 -print(last_spoken) +print(new_spoken) diff --git a/15/2.py b/15/2.py index 3a34463..979c967 100644 --- a/15/2.py +++ b/15/2.py @@ -1,25 +1,21 @@ content = [2,0,6,12,1,3] spoken = {} -new_number = 0 -last_spoken = 0 +new_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: +last_turn = 0 +while turn <= 30000000: + if not last_turn: 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] + last_turn = spoken.get(new_spoken, 0) spoken[new_spoken] = turn - last_spoken = new_spoken + turn += 1 -print(last_spoken) +print(new_spoken)