From 0cc8a81b2303f857231fbd95779e1cf949370756 Mon Sep 17 00:00:00 2001 From: oliverhnat Date: Mon, 5 Dec 2022 23:48:00 +0100 Subject: [PATCH] Day 5 --- day5/day5.py | 57 ++++++ day5/day5.txt | 512 ++++++++++++++++++++++++++++++++++++++++++++++++++ day5/res.json | 76 ++++++++ 3 files changed, 645 insertions(+) create mode 100644 day5/day5.py create mode 100644 day5/day5.txt create mode 100644 day5/res.json diff --git a/day5/day5.py b/day5/day5.py new file mode 100644 index 0000000..7dac41d --- /dev/null +++ b/day5/day5.py @@ -0,0 +1,57 @@ +with open("day5/day5.txt", "r") as f: + file = f.read() + +rows = file.split("\n") + +i = 0 +columns = {} +# put innitial crates to a dictionary +for row in rows: + split = row.split(" ") + if "1" in split: + break + empty = 0 + cols = 1 + for col in split: + if col == "": + empty += 1 + if empty == 4: + empty = 0 + # if columns.get(cols, None) is None: + # columns[cols] = [col] + # else: + # columns[cols].append(col) + cols += 1 + continue + if columns.get(cols, None) is None: + columns[cols] = [col] + else: + columns[cols].append(col) + cols += 1 + i += 1 + +for i in columns: + columns[i].reverse() +moveList = [] +instructions = rows[i+1:] +for row in instructions: + if row == "": + continue + split = row.split(" ") + move = int(split[1]) + move_from = int(split[3]) + move_to = int(split[5]) + for _ in range(int(move)): + moveList.append(columns[move_from][-1]) + columns[move_from].pop() + for _ in range(int(move)): + columns[move_to].append(moveList[-1]) + moveList.pop() + +res = "" +for i in range(1, len(columns)+1): + print(i) + res += columns[i][-1] + +print(res.replace("[", "").replace("]", "")) +print(columns) diff --git a/day5/day5.txt b/day5/day5.txt new file mode 100644 index 0000000..adc0bbc --- /dev/null +++ b/day5/day5.txt @@ -0,0 +1,512 @@ + [H] [D] [P] +[W] [B] [C] [Z] [D] +[T] [J] [T] [J] [D] [J] +[H] [Z] [H] [H] [W] [S] [M] +[P] [F] [R] [P] [Z] [F] [W] [F] +[J] [V] [T] [N] [F] [G] [Z] [S] [S] +[C] [R] [P] [S] [V] [M] [V] [D] [Z] +[F] [G] [H] [Z] [N] [P] [M] [N] [D] + 1 2 3 4 5 6 7 8 9 + +move 2 from 8 to 2 +move 3 from 9 to 2 +move 1 from 3 to 8 +move 5 from 1 to 7 +move 2 from 9 to 2 +move 8 from 2 to 4 +move 6 from 7 to 2 +move 2 from 1 to 7 +move 4 from 5 to 9 +move 4 from 5 to 6 +move 1 from 8 to 3 +move 1 from 8 to 5 +move 2 from 9 to 8 +move 8 from 6 to 4 +move 4 from 3 to 6 +move 10 from 2 to 3 +move 1 from 5 to 1 +move 1 from 7 to 4 +move 2 from 9 to 8 +move 18 from 4 to 8 +move 1 from 1 to 6 +move 4 from 7 to 3 +move 12 from 8 to 4 +move 4 from 7 to 9 +move 5 from 6 to 9 +move 2 from 2 to 7 +move 3 from 9 to 5 +move 3 from 5 to 9 +move 1 from 2 to 8 +move 10 from 3 to 1 +move 2 from 7 to 8 +move 10 from 1 to 9 +move 1 from 3 to 5 +move 16 from 9 to 8 +move 1 from 3 to 2 +move 3 from 8 to 3 +move 1 from 5 to 9 +move 3 from 6 to 7 +move 2 from 7 to 2 +move 1 from 3 to 8 +move 5 from 4 to 1 +move 4 from 9 to 5 +move 2 from 2 to 5 +move 2 from 1 to 9 +move 23 from 8 to 4 +move 6 from 5 to 2 +move 5 from 2 to 6 +move 1 from 9 to 6 +move 2 from 2 to 4 +move 35 from 4 to 9 +move 1 from 6 to 1 +move 2 from 8 to 7 +move 1 from 6 to 8 +move 3 from 1 to 7 +move 1 from 7 to 1 +move 3 from 6 to 2 +move 4 from 3 to 7 +move 6 from 7 to 9 +move 1 from 6 to 9 +move 1 from 8 to 1 +move 2 from 2 to 9 +move 2 from 8 to 2 +move 3 from 7 to 3 +move 2 from 1 to 9 +move 5 from 9 to 3 +move 1 from 4 to 2 +move 1 from 1 to 4 +move 7 from 3 to 9 +move 1 from 3 to 4 +move 2 from 4 to 7 +move 24 from 9 to 4 +move 12 from 9 to 3 +move 1 from 3 to 1 +move 1 from 1 to 2 +move 2 from 2 to 6 +move 1 from 6 to 5 +move 1 from 6 to 8 +move 3 from 2 to 4 +move 1 from 7 to 4 +move 1 from 5 to 3 +move 1 from 9 to 8 +move 23 from 4 to 8 +move 17 from 8 to 5 +move 12 from 9 to 8 +move 10 from 8 to 7 +move 1 from 8 to 6 +move 5 from 4 to 3 +move 3 from 5 to 1 +move 3 from 1 to 6 +move 6 from 5 to 4 +move 10 from 3 to 1 +move 9 from 1 to 7 +move 2 from 4 to 9 +move 1 from 1 to 6 +move 4 from 8 to 1 +move 4 from 3 to 7 +move 4 from 6 to 5 +move 1 from 9 to 6 +move 1 from 9 to 2 +move 1 from 1 to 7 +move 1 from 2 to 7 +move 3 from 1 to 7 +move 9 from 5 to 9 +move 7 from 9 to 7 +move 2 from 9 to 1 +move 3 from 5 to 9 +move 3 from 4 to 8 +move 1 from 1 to 2 +move 1 from 2 to 6 +move 1 from 1 to 6 +move 5 from 8 to 7 +move 1 from 8 to 1 +move 1 from 3 to 9 +move 1 from 1 to 6 +move 2 from 9 to 5 +move 2 from 3 to 9 +move 4 from 6 to 3 +move 1 from 9 to 4 +move 2 from 4 to 8 +move 1 from 4 to 8 +move 1 from 9 to 5 +move 1 from 6 to 8 +move 23 from 7 to 8 +move 27 from 8 to 2 +move 2 from 8 to 1 +move 23 from 2 to 6 +move 3 from 5 to 3 +move 4 from 2 to 5 +move 2 from 3 to 1 +move 2 from 9 to 3 +move 4 from 1 to 4 +move 13 from 7 to 9 +move 1 from 5 to 6 +move 2 from 5 to 9 +move 1 from 5 to 3 +move 3 from 9 to 3 +move 5 from 9 to 5 +move 2 from 4 to 2 +move 1 from 4 to 9 +move 11 from 6 to 9 +move 9 from 6 to 1 +move 17 from 9 to 5 +move 3 from 7 to 4 +move 3 from 6 to 3 +move 14 from 5 to 2 +move 5 from 3 to 1 +move 2 from 9 to 4 +move 2 from 3 to 8 +move 5 from 5 to 9 +move 2 from 5 to 4 +move 7 from 1 to 8 +move 2 from 9 to 5 +move 3 from 9 to 8 +move 8 from 4 to 2 +move 2 from 7 to 8 +move 10 from 2 to 9 +move 10 from 2 to 6 +move 8 from 9 to 7 +move 2 from 3 to 9 +move 3 from 9 to 8 +move 5 from 3 to 9 +move 7 from 7 to 9 +move 3 from 2 to 9 +move 10 from 8 to 5 +move 1 from 7 to 6 +move 1 from 2 to 3 +move 4 from 1 to 6 +move 2 from 8 to 4 +move 1 from 4 to 6 +move 2 from 6 to 3 +move 2 from 3 to 1 +move 1 from 4 to 9 +move 4 from 1 to 5 +move 2 from 5 to 2 +move 2 from 8 to 4 +move 1 from 3 to 5 +move 3 from 5 to 7 +move 2 from 2 to 9 +move 3 from 7 to 6 +move 3 from 8 to 5 +move 10 from 5 to 7 +move 3 from 6 to 4 +move 11 from 6 to 1 +move 3 from 6 to 2 +move 12 from 1 to 3 +move 1 from 7 to 5 +move 9 from 7 to 3 +move 5 from 5 to 1 +move 4 from 4 to 6 +move 2 from 1 to 7 +move 1 from 2 to 6 +move 2 from 7 to 8 +move 1 from 2 to 4 +move 1 from 9 to 5 +move 3 from 6 to 7 +move 1 from 5 to 2 +move 9 from 9 to 5 +move 1 from 2 to 8 +move 1 from 4 to 8 +move 1 from 1 to 8 +move 1 from 4 to 2 +move 1 from 7 to 2 +move 1 from 6 to 2 +move 1 from 6 to 8 +move 6 from 9 to 6 +move 1 from 3 to 4 +move 9 from 3 to 5 +move 1 from 1 to 3 +move 2 from 2 to 6 +move 1 from 3 to 5 +move 14 from 5 to 1 +move 1 from 2 to 6 +move 5 from 6 to 4 +move 3 from 8 to 2 +move 5 from 6 to 1 +move 5 from 4 to 6 +move 1 from 7 to 1 +move 3 from 9 to 3 +move 7 from 5 to 7 +move 1 from 4 to 6 +move 2 from 7 to 5 +move 3 from 6 to 1 +move 3 from 8 to 1 +move 14 from 3 to 4 +move 8 from 4 to 2 +move 1 from 6 to 1 +move 15 from 1 to 6 +move 7 from 1 to 6 +move 6 from 1 to 3 +move 3 from 3 to 1 +move 2 from 4 to 5 +move 1 from 4 to 2 +move 19 from 6 to 8 +move 2 from 1 to 8 +move 4 from 5 to 4 +move 7 from 8 to 2 +move 2 from 3 to 1 +move 13 from 8 to 6 +move 4 from 4 to 9 +move 2 from 4 to 8 +move 2 from 1 to 6 +move 1 from 3 to 5 +move 19 from 2 to 3 +move 13 from 3 to 1 +move 1 from 4 to 9 +move 1 from 2 to 8 +move 3 from 7 to 1 +move 14 from 6 to 9 +move 2 from 6 to 4 +move 18 from 9 to 4 +move 3 from 7 to 2 +move 15 from 1 to 4 +move 2 from 1 to 8 +move 5 from 3 to 1 +move 1 from 3 to 6 +move 5 from 8 to 9 +move 3 from 9 to 5 +move 1 from 9 to 5 +move 1 from 8 to 9 +move 1 from 6 to 2 +move 3 from 9 to 4 +move 2 from 6 to 7 +move 30 from 4 to 6 +move 22 from 6 to 9 +move 6 from 9 to 4 +move 4 from 6 to 7 +move 1 from 1 to 6 +move 1 from 9 to 8 +move 1 from 7 to 6 +move 3 from 5 to 3 +move 5 from 6 to 5 +move 2 from 7 to 9 +move 4 from 1 to 5 +move 1 from 6 to 4 +move 1 from 8 to 7 +move 2 from 6 to 4 +move 17 from 9 to 8 +move 2 from 2 to 7 +move 2 from 3 to 1 +move 8 from 4 to 8 +move 1 from 3 to 8 +move 8 from 4 to 2 +move 2 from 1 to 2 +move 1 from 4 to 6 +move 4 from 7 to 1 +move 1 from 6 to 8 +move 19 from 8 to 3 +move 5 from 5 to 1 +move 5 from 5 to 9 +move 2 from 9 to 3 +move 6 from 1 to 9 +move 1 from 7 to 5 +move 1 from 7 to 4 +move 2 from 5 to 7 +move 2 from 2 to 4 +move 4 from 9 to 8 +move 12 from 8 to 7 +move 2 from 1 to 9 +move 1 from 7 to 4 +move 4 from 4 to 5 +move 3 from 9 to 3 +move 9 from 2 to 6 +move 2 from 7 to 5 +move 1 from 1 to 9 +move 5 from 9 to 7 +move 9 from 6 to 2 +move 6 from 2 to 8 +move 21 from 3 to 2 +move 12 from 2 to 9 +move 3 from 5 to 9 +move 3 from 3 to 8 +move 5 from 9 to 6 +move 13 from 2 to 3 +move 3 from 6 to 2 +move 10 from 9 to 8 +move 6 from 3 to 1 +move 3 from 2 to 9 +move 2 from 6 to 7 +move 5 from 3 to 9 +move 4 from 1 to 9 +move 3 from 8 to 5 +move 1 from 1 to 7 +move 6 from 5 to 7 +move 12 from 9 to 7 +move 1 from 1 to 8 +move 11 from 8 to 5 +move 9 from 5 to 7 +move 1 from 3 to 1 +move 4 from 8 to 7 +move 1 from 1 to 7 +move 2 from 8 to 3 +move 42 from 7 to 4 +move 3 from 7 to 9 +move 4 from 7 to 5 +move 1 from 7 to 8 +move 1 from 8 to 5 +move 1 from 7 to 5 +move 1 from 3 to 4 +move 1 from 3 to 9 +move 1 from 9 to 6 +move 1 from 6 to 4 +move 1 from 3 to 5 +move 3 from 9 to 2 +move 16 from 4 to 8 +move 3 from 2 to 4 +move 1 from 5 to 4 +move 30 from 4 to 6 +move 15 from 8 to 3 +move 2 from 4 to 5 +move 1 from 8 to 7 +move 13 from 3 to 6 +move 1 from 7 to 8 +move 1 from 3 to 8 +move 1 from 3 to 8 +move 4 from 5 to 2 +move 6 from 5 to 2 +move 2 from 8 to 6 +move 43 from 6 to 2 +move 1 from 6 to 1 +move 18 from 2 to 4 +move 24 from 2 to 6 +move 19 from 6 to 3 +move 4 from 6 to 3 +move 2 from 6 to 3 +move 3 from 3 to 2 +move 1 from 1 to 3 +move 23 from 3 to 6 +move 12 from 4 to 3 +move 7 from 3 to 9 +move 13 from 2 to 9 +move 1 from 8 to 4 +move 4 from 3 to 8 +move 6 from 4 to 2 +move 10 from 9 to 3 +move 6 from 2 to 9 +move 8 from 3 to 5 +move 3 from 5 to 3 +move 13 from 6 to 5 +move 4 from 3 to 9 +move 1 from 4 to 2 +move 4 from 8 to 3 +move 1 from 2 to 5 +move 14 from 9 to 5 +move 2 from 5 to 4 +move 2 from 4 to 3 +move 1 from 9 to 5 +move 4 from 6 to 1 +move 1 from 6 to 2 +move 6 from 3 to 2 +move 5 from 6 to 8 +move 2 from 3 to 7 +move 1 from 8 to 1 +move 25 from 5 to 7 +move 3 from 7 to 9 +move 5 from 2 to 9 +move 12 from 9 to 8 +move 3 from 1 to 6 +move 16 from 8 to 2 +move 1 from 9 to 2 +move 1 from 6 to 2 +move 1 from 1 to 3 +move 21 from 7 to 3 +move 2 from 7 to 1 +move 1 from 7 to 8 +move 2 from 2 to 1 +move 2 from 6 to 3 +move 18 from 2 to 9 +move 2 from 5 to 1 +move 1 from 2 to 1 +move 3 from 5 to 2 +move 13 from 9 to 1 +move 3 from 9 to 2 +move 1 from 8 to 7 +move 3 from 2 to 6 +move 2 from 5 to 1 +move 17 from 3 to 8 +move 3 from 3 to 8 +move 2 from 9 to 1 +move 1 from 7 to 5 +move 1 from 5 to 3 +move 2 from 6 to 4 +move 1 from 6 to 1 +move 15 from 8 to 2 +move 2 from 3 to 6 +move 1 from 8 to 5 +move 2 from 6 to 8 +move 13 from 2 to 9 +move 4 from 9 to 8 +move 9 from 8 to 9 +move 3 from 3 to 4 +move 4 from 9 to 7 +move 1 from 8 to 6 +move 1 from 7 to 5 +move 2 from 5 to 1 +move 1 from 6 to 3 +move 4 from 4 to 5 +move 1 from 4 to 6 +move 1 from 3 to 7 +move 1 from 5 to 6 +move 2 from 7 to 2 +move 4 from 2 to 3 +move 3 from 2 to 7 +move 1 from 3 to 6 +move 1 from 9 to 6 +move 2 from 5 to 2 +move 3 from 9 to 5 +move 1 from 6 to 1 +move 3 from 5 to 4 +move 12 from 1 to 2 +move 2 from 2 to 4 +move 2 from 7 to 8 +move 2 from 3 to 9 +move 1 from 4 to 7 +move 1 from 5 to 2 +move 1 from 8 to 3 +move 2 from 3 to 6 +move 7 from 2 to 8 +move 3 from 4 to 1 +move 7 from 8 to 5 +move 7 from 9 to 2 +move 1 from 4 to 5 +move 3 from 7 to 6 +move 5 from 6 to 9 +move 6 from 9 to 5 +move 4 from 9 to 6 +move 1 from 8 to 5 +move 1 from 7 to 4 +move 1 from 4 to 2 +move 2 from 2 to 9 +move 2 from 9 to 2 +move 11 from 5 to 3 +move 2 from 5 to 2 +move 1 from 2 to 9 +move 4 from 6 to 9 +move 1 from 2 to 9 +move 4 from 3 to 7 +move 3 from 6 to 4 +move 1 from 5 to 7 +move 18 from 1 to 3 +move 11 from 3 to 2 +move 1 from 7 to 9 +move 1 from 5 to 9 +move 14 from 3 to 6 +move 15 from 2 to 4 +move 5 from 2 to 5 +move 1 from 2 to 5 +move 1 from 1 to 9 +move 8 from 4 to 1 +move 5 from 5 to 9 +move 9 from 4 to 9 +move 4 from 7 to 4 +move 5 from 4 to 8 +move 2 from 9 to 6 +move 8 from 1 to 8 +move 1 from 5 to 3 +move 1 from 3 to 4 +move 1 from 1 to 8 +move 13 from 6 to 3 +move 9 from 9 to 5 +move 1 from 2 to 8 +move 8 from 5 to 1 +move 1 from 2 to 7 \ No newline at end of file diff --git a/day5/res.json b/day5/res.json new file mode 100644 index 0000000..9ea7b4e --- /dev/null +++ b/day5/res.json @@ -0,0 +1,76 @@ +{ + "1": [ + "C", + "H", + "T", + "N", + "W", + "F", + "H", + "S" + ], + "2": [ + "M", + "P" + ], + "3": [ + "B", + "M", + "W", + "Z", + "P", + "D", + "D", + "J", + "V", + "Z", + "H", + "Z", + "F" + ], + "4": [ + "M" + ], + "5": [ + "V" + ], + "6": [ + "P", + "D", + "D" + ], + "7": [ + "T" + ], + "8": [ + "G", + "W", + "P", + "J", + "J", + "C", + "R", + "F", + "Z", + "V", + "P", + "S", + "N", + "G", + "Z" + ], + "9": [ + "F", + "H", + "J", + "R", + "D", + "S", + "F", + "S", + "N", + "H", + "Z", + "T" + ] +} \ No newline at end of file