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)