Added 2020 (python)
This commit is contained in:
BIN
2020/15/__pycache__/prog.cpython-39.pyc
Normal file
BIN
2020/15/__pycache__/prog.cpython-39.pyc
Normal file
Binary file not shown.
BIN
2020/15/__pycache__/test.cpython-39.pyc
Normal file
BIN
2020/15/__pycache__/test.cpython-39.pyc
Normal file
Binary file not shown.
14
2020/15/prog.py
Normal file
14
2020/15/prog.py
Normal 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
31
2020/15/test.py
Normal 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)
|
Reference in New Issue
Block a user