Added 2020 (python)

This commit is contained in:
Karma Riuk
2023-08-02 11:39:56 +02:00
commit 410815acf8
93 changed files with 11719 additions and 0 deletions

Binary file not shown.

Binary file not shown.

14
2020/15/prog.py Normal file
View File

@ -0,0 +1,14 @@
from yaml import dump
def get_result(inp: list, part = 1):
last_pos = {n: i+1 for i, n in enumerate(inp[:-1])}
prev_item = inp[-1]
for i in range(len(inp), 2020 if part == 1 else 30_000_000):
cur_item = 0 if prev_item not in last_pos.keys() else i - last_pos[prev_item]
last_pos[prev_item] = i
prev_item = cur_item
return cur_item
if __name__ == "__main__":
print(get_result([20, 9, 11, 0, 1, 2], part = 2))

31
2020/15/test.py Normal file
View File

@ -0,0 +1,31 @@
from prog import *
import unittest
class Methods(unittest.TestCase):
pass
class Result(unittest.TestCase):
def test_p1(self):
self.assertEqual(get_result([0, 3, 6]), 436)
self.assertEqual(get_result([1, 3, 2]), 1)
self.assertEqual(get_result([2, 1, 3]), 10)
self.assertEqual(get_result([1, 2, 3]), 27)
self.assertEqual(get_result([2, 3, 1]), 78)
self.assertEqual(get_result([3, 2, 1]), 438)
self.assertEqual(get_result([3, 1, 2]), 1836)
def test_p2_1(self):
self.assertEqual(get_result([0, 3, 6], part = 2), 175594)
def test_p2_2(self):
self.assertEqual(get_result([1, 3, 2], part = 2), 2578)
def test_p2_3(self):
self.assertEqual(get_result([2, 1, 3], part = 2), 3544142)
def test_p2_4(self):
self.assertEqual(get_result([1, 2, 3], part = 2), 261214)
def test_p2_5(self):
self.assertEqual(get_result([2, 3, 1], part = 2), 6895259)
def test_p2_6(self):
self.assertEqual(get_result([3, 2, 1], part = 2), 18)
def test_p2_7(self):
self.assertEqual(get_result([3, 1, 2], part = 2), 362)