From fc02f0723a7cc00511c86f3d1d750f94d7632ea6 Mon Sep 17 00:00:00 2001 From: Peter Hudec Date: Tue, 16 Jan 2018 00:25:21 +0100 Subject: [PATCH] day 02 --- 02/input.puzzle | 5 +++++ 02/input.sample01 | 4 ++++ 02/part01.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 02/part02.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 +- 5 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 02/input.puzzle create mode 100644 02/input.sample01 create mode 100755 02/part01.py create mode 100755 02/part02.py diff --git a/02/input.puzzle b/02/input.puzzle new file mode 100644 index 0000000..7ba383c --- /dev/null +++ b/02/input.puzzle @@ -0,0 +1,5 @@ +RRLUDDLDUDUDUDRDDDRDDRLUUUDRUDURURURLRDDULLLDRRRRULDDRDDURDLURLURRUULRURDDDDLDDRRLDUDUUDURURDLDRRURDLLLDLLRUDRLDDRUULLLLLRRLDUDLUUDRUULLRLLLRLUURDLDLLDDRULDLUURRURLUUURLLDDULRDULULRULDDLRDDUUDLRRURLLURURLDDLURRLUURRRRLDRDLDUDRUDDRULLDUDDLRRLUUUUUDDLLDRLURDDRLLUDULDRDDLLUURUUUURDRLRLLULUULULLRRDLULRUDURDLRLRDDDRULLUULRURULLLUDUURUUUURUULDURDRRRULRLULDLRRULULUUDDDRDURLLURLLDUUUUDULRDLRDUUDDLDUDRLLRLRRRLULUDDDURLRRURUDDDRDRDRLLRDRDLDDRRDRDLLRLLLRRULRDDURRDUDRURDLDULLRRLURLRLLDURRRLLDRRURRRUULDRLDUULRDLDLURUDLLDLLUUDDDUUUDRL +DLRRDRRDDRRDURLUDDDDDULDDLLDRLURDDDDDDRDDDRDDDLLRRULLLRUDULLDURULRRDLURURUDRUURDRLUURRUDRUULUURULULDDLLDDRLDUDDRDRDDUULDULDDLUDUDDUDLULLUDLLLLLRRRUURLUUUULRURULUDDULLLRLRDRUUULULRUUUULRDLLDLDRDRDRDRRUUURULDUUDLDRDRURRUDDRLDULDDRULRRRLRDDUUDRUDLDULDURRDUDDLULULLDULLLRRRDULLLRRURDUURULDRDURRURRRRDLDRRUDDLLLDRDRDRURLUURURRUUURRUDLDDULDRDRRURDLUULDDUUUURLRUULRUURLUUUDLUDRLURUDLDLDLURUURLDURDDDDRURULLULLDRDLLRRLDLRRRDURDULLLDLRLDR +URURLLDRDLULULRDRRDDUUUDDRDUURULLULDRLUDLRUDDDLDRRLURLURUUDRLDUULDRDURRLLUDLDURRRRLURLDDRULRLDULDDRRLURDDRLUDDULUDULRLDULDLDUDRLLDDRRRDULLDLRRLDRLURLUULDDDDURULLDLLLDRRLRRLLRDDRDLDRURRUURLLDDDLRRRRRDLRRDRLDDDLULULRLUURULURUUDRULRLLRDLDULDRLLLDLRRRUDURLUURRUDURLDDDRDRURURRLRRLDDRURULDRUURRLULDLUDUULDLUULUDURRDDRLLLRLRRLUUURRDRUULLLRUUURLLDDRDRULDULURRDRURLRRLRDURRURRDLDUDRURUULULDDUDUULDRDURRRDLURRLRLDUDRDULLURLRRUDLUDRRRULRURDUDDDURLRULRRUDUUDDLLLURLLRLLDRDUURDDLUDLURDRRDLLRLURRUURRLDUUUUDUD +DRRDRRRLDDLDUDRDLRUUDRDUDRRDUDRDURRDDRLLURUUDRLRDDULLUULRUUDDRLDLRULDLRLDUDULUULLLRDLURDRDURURDUDUDDDRRLRRLLRULLLLRDRDLRRDDDLULDLLUUULRDURRULDDUDDDURRDRDRDRULRRRDRUDLLDDDRULRRLUDRDLDLDDDLRLRLRLDULRLLRLRDUUULLRRDLLRDULURRLDUDDULDDRLUDLULLRLDUDLULRDURLRULLRRDRDDLUULUUUULDRLLDRDLUDURRLLDURLLDDLLUULLDURULULDLUUDLRURRRULUDRLDRDURLDUDDULRDRRDDRLRRDDRUDRURULDRRLUURUDULDDDLRRRRDRRRLLURUURLRLULUULLRLRDLRRLLUULLDURDLULURDLRUUDUUURURUURDDRLULUUULRDRDRUUDDDRDRL +RLRUDDUUDDDDRRLRUUDLLDRUUUDRRDLDRLRLLDRLUDDURDLDUDRRUURULLRRLUULLUDRDRUDDULRLLUDLULRLRRUUDLDLRDDDRDDDUDLULDLRRLUDUDDRRRRDRDRUUDDURLRDLLDLDLRRDURULDRLRRURULRDDLLLRULLRUUUDLDUURDUUDDRRRDDRLDDRULRRRDRRLUDDDRUURRDRRDURDRUDRRDLUDDURRLUDUDLLRUURLRLLLDDURUDLDRLRLLDLLULLDRULUURLDDULDDRDDDURULLDRDDLURRDDRRRLDLRLRRLLDLLLRDUDDULRLUDDUULUDLDDDULULDLRDDLDLLLDUUDLRRLRDRRUUUURLDLRRLDULURLDRDURDDRURLDLDULURRRLRUDLDURDLLUDULDDU diff --git a/02/input.sample01 b/02/input.sample01 new file mode 100644 index 0000000..5139196 --- /dev/null +++ b/02/input.sample01 @@ -0,0 +1,4 @@ +ULL +RRDDD +LURDL +UUUUD diff --git a/02/part01.py b/02/part01.py new file mode 100755 index 0000000..0f9dd1c --- /dev/null +++ b/02/part01.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python + +import re +import argparse + +KEYPAD = { + 1: {'U': 0, 'D': 4, 'L': 0, 'R': 2 }, + 2: {'U': 0, 'D': 5, 'L': 1, 'R': 3 }, + 3: {'U': 0, 'D': 6, 'L': 2, 'R': 0 }, + 4: {'U': 1, 'D': 7, 'L': 0, 'R': 5 }, + 5: {'U': 2, 'D': 8, 'L': 4, 'R': 6 }, + 6: {'U': 3, 'D': 9, 'L': 5, 'R': 0 }, + 7: {'U': 4, 'D': 0, 'L': 0, 'R': 8 }, + 8: {'U': 5, 'D': 0, 'L': 7, 'R': 9 }, + 9: {'U': 6, 'D': 0, 'L': 8, 'R': 0 } +} + +def load_file(filename): + with open(filename) as f: + data = f.readlines() + return data + +def main(args): + KEY = 5 + CODE = "" + for LINE in load_file(args.input): + LINE = LINE.strip() + for STEP in LINE: + KEY_NEW = KEYPAD[KEY][STEP] + if not KEY_NEW: + continue + KEY = KEY_NEW + CODE = "{}{:d}".format(CODE, KEY) + + print(CODE) + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description='AdventOfCode 2016 Day 01') + parser.add_argument('--input', '-i', action='store', required=True, help='input file') + args = parser.parse_args() + + main(args) diff --git a/02/part02.py b/02/part02.py new file mode 100755 index 0000000..e387726 --- /dev/null +++ b/02/part02.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python + +import re +import argparse + +KEYPAD = { + '1': {'U': None, 'D': '3', 'L': None, 'R': None }, + '2': {'U': None, 'D': '6', 'L': None, 'R': '3' }, + '3': {'U': '1', 'D': '7', 'L': '2', 'R': '4' }, + '4': {'U': None, 'D': '8', 'L': '3', 'R': None }, + '5': {'U': None, 'D': None, 'L': None, 'R': '6' }, + '6': {'U': '2', 'D': 'A', 'L': '5', 'R': '7' }, + '7': {'U': '3', 'D': 'B', 'L': '6', 'R': '8' }, + '8': {'U': '4', 'D': 'C', 'L': '7', 'R': '9' }, + '9': {'U': None, 'D': None, 'L': '8', 'R': None }, + 'A': {'U': '6', 'D': None, 'L': None, 'R': 'B' }, + 'B': {'U': '7', 'D': 'D', 'L': 'A', 'R': 'C' }, + 'C': {'U': '8', 'D': None, 'L': 'B', 'R': None }, + 'D': {'U': 'B', 'D': None, 'L': None, 'R': None } +} + +def load_file(filename): + with open(filename) as f: + data = f.readlines() + return data + +def main(args): + KEY = '5' + CODE = "" + for LINE in load_file(args.input): + LINE = LINE.strip() + for STEP in LINE: + KEY_NEW = KEYPAD[KEY][STEP] + if KEY_NEW is None: + continue + KEY = KEY_NEW + CODE = "{}{}".format(CODE, KEY) + + print(CODE) + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description='AdventOfCode 2016 Day 01') + parser.add_argument('--input', '-i', action='store', required=True, help='input file') + args = parser.parse_args() + + main(args) diff --git a/README.md b/README.md index 001f05e..7fb2e72 100644 --- a/README.md +++ b/README.md @@ -5,4 +5,4 @@ ## Tasks - **Day 1**: No Time for a Taxicab - +- **Day 2**: Bathroom Security