From cdb50936f3844b5b3d2a3dfc11c4aab4b872a4ff Mon Sep 17 00:00:00 2001 From: fettlaus <_Ox46K:26i?> Date: Sat, 7 Dec 2019 12:26:23 +0100 Subject: [PATCH] finished day 7a --- advent.py | 1 + days/__init__.py | 1 + days/day7.py | 30 ++++++++++++++++++++++++++++++ days/input/day7_input | 1 + 4 files changed, 33 insertions(+) create mode 100644 days/day7.py create mode 100644 days/input/day7_input diff --git a/advent.py b/advent.py index 1630b1b..d33a4d3 100644 --- a/advent.py +++ b/advent.py @@ -16,6 +16,7 @@ def suite(): suite.addTest(Day5('test_day5b')) suite.addTest(Day6('test_day6a')) suite.addTest(Day6('test_day6b')) + suite.addTest(Day7('test_day7a')) return suite diff --git a/days/__init__.py b/days/__init__.py index ad4389a..3645488 100644 --- a/days/__init__.py +++ b/days/__init__.py @@ -4,4 +4,5 @@ from .day3 import Day3 from .day4 import Day4 from .day5 import Day5 from .day6 import Day6 +from .day7 import Day7 from .comp import OpcodeComputer diff --git a/days/day7.py b/days/day7.py new file mode 100644 index 0000000..4e921c7 --- /dev/null +++ b/days/day7.py @@ -0,0 +1,30 @@ +import unittest +import os +from . import comp +import itertools + + +class Day7(unittest.TestCase): + def get_code(self): + inputfile = os.path.join(os.path.dirname(__file__), "input/day7_input") + with open(inputfile) as fp: + return [int(k) for k in fp.readline().split(',')] + + def test_day7a(self): + com = comp.OpcodeComputer(self.get_code()) + configs = itertools.permutations(range(5), 5) + + res = 0 + out = [] + for conf in configs: + sig = 0 + for phase in conf: + out.clear() + com.process_op([phase, sig], out) + sig = out[0] + res = int(out[0]) if int(out[0]) > res else res + + self.assertEqual(res, 21000) + + def test_day7b(self): + pass diff --git a/days/input/day7_input b/days/input/day7_input new file mode 100644 index 0000000..dd25baa --- /dev/null +++ b/days/input/day7_input @@ -0,0 +1 @@ +3,8,1001,8,10,8,105,1,0,0,21,46,59,72,93,110,191,272,353,434,99999,3,9,101,4,9,9,1002,9,3,9,1001,9,5,9,102,2,9,9,1001,9,5,9,4,9,99,3,9,1002,9,5,9,1001,9,5,9,4,9,99,3,9,101,4,9,9,1002,9,4,9,4,9,99,3,9,102,3,9,9,101,3,9,9,1002,9,2,9,1001,9,5,9,4,9,99,3,9,1001,9,2,9,102,4,9,9,101,2,9,9,4,9,99,3,9,1002,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,102,2,9,9,4,9,3,9,102,2,9,9,4,9,3,9,102,2,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,101,2,9,9,4,9,3,9,101,2,9,9,4,9,3,9,1001,9,2,9,4,9,3,9,101,2,9,9,4,9,99,3,9,101,2,9,9,4,9,3,9,101,2,9,9,4,9,3,9,101,1,9,9,4,9,3,9,101,1,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,101,2,9,9,4,9,3,9,102,2,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,102,2,9,9,4,9,3,9,101,1,9,9,4,9,99,3,9,101,2,9,9,4,9,3,9,1001,9,1,9,4,9,3,9,101,1,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,1001,9,2,9,4,9,3,9,102,2,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,1001,9,1,9,4,9,3,9,101,2,9,9,4,9,99,3,9,102,2,9,9,4,9,3,9,1001,9,2,9,4,9,3,9,1001,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,1001,9,1,9,4,9,3,9,101,2,9,9,4,9,3,9,102,2,9,9,4,9,3,9,1001,9,2,9,4,9,99,3,9,1001,9,1,9,4,9,3,9,1001,9,1,9,4,9,3,9,1001,9,2,9,4,9,3,9,102,2,9,9,4,9,3,9,102,2,9,9,4,9,3,9,101,1,9,9,4,9,3,9,101,1,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,1001,9,1,9,4,9,99 \ No newline at end of file