diff --git a/day5/input.txt b/day5/input.txt new file mode 100644 index 0000000..b453226 --- /dev/null +++ b/day5/input.txt @@ -0,0 +1,512 @@ +[J] [F] [M] +[Z] [F] [G] [Q] [F] +[G] [P] [H] [Z] [S] [Q] +[V] [W] [Z] [P] [D] [G] [P] +[T] [D] [S] [Z] [N] [W] [B] [N] +[D] [M] [R] [J] [J] [P] [V] [P] [J] +[B] [R] [C] [T] [C] [V] [C] [B] [P] +[N] [S] [V] [R] [T] [N] [G] [Z] [W] + 1 2 3 4 5 6 7 8 9 + +move 2 from 4 to 6 +move 1 from 9 to 5 +move 3 from 2 to 4 +move 8 from 4 to 7 +move 2 from 9 to 7 +move 3 from 8 to 3 +move 2 from 1 to 2 +move 5 from 7 to 9 +move 1 from 9 to 4 +move 1 from 8 to 3 +move 1 from 3 to 4 +move 2 from 4 to 9 +move 7 from 3 to 5 +move 6 from 1 to 8 +move 11 from 7 to 9 +move 12 from 5 to 3 +move 6 from 6 to 9 +move 3 from 3 to 8 +move 4 from 2 to 7 +move 3 from 5 to 7 +move 1 from 5 to 7 +move 2 from 2 to 5 +move 1 from 5 to 2 +move 5 from 8 to 9 +move 7 from 7 to 2 +move 3 from 8 to 7 +move 1 from 8 to 9 +move 4 from 3 to 6 +move 1 from 5 to 1 +move 9 from 9 to 6 +move 7 from 9 to 6 +move 20 from 6 to 5 +move 12 from 9 to 8 +move 5 from 5 to 1 +move 3 from 7 to 4 +move 6 from 2 to 7 +move 2 from 3 to 1 +move 4 from 3 to 8 +move 1 from 4 to 1 +move 7 from 7 to 5 +move 4 from 8 to 2 +move 3 from 6 to 2 +move 3 from 2 to 9 +move 4 from 1 to 7 +move 2 from 1 to 2 +move 3 from 9 to 5 +move 11 from 8 to 5 +move 1 from 6 to 9 +move 1 from 8 to 5 +move 1 from 1 to 2 +move 24 from 5 to 4 +move 2 from 1 to 6 +move 11 from 5 to 4 +move 2 from 7 to 9 +move 1 from 6 to 2 +move 4 from 2 to 1 +move 28 from 4 to 2 +move 1 from 7 to 8 +move 9 from 2 to 5 +move 2 from 9 to 6 +move 4 from 4 to 2 +move 1 from 7 to 4 +move 3 from 4 to 7 +move 1 from 6 to 9 +move 21 from 2 to 3 +move 3 from 1 to 6 +move 5 from 6 to 2 +move 7 from 2 to 3 +move 1 from 9 to 3 +move 1 from 8 to 4 +move 1 from 7 to 8 +move 3 from 5 to 8 +move 1 from 1 to 7 +move 2 from 7 to 9 +move 2 from 8 to 4 +move 1 from 9 to 2 +move 1 from 8 to 6 +move 11 from 3 to 4 +move 1 from 7 to 8 +move 6 from 5 to 9 +move 2 from 8 to 7 +move 1 from 6 to 5 +move 7 from 3 to 8 +move 9 from 3 to 6 +move 1 from 8 to 3 +move 1 from 7 to 4 +move 2 from 3 to 5 +move 4 from 5 to 7 +move 4 from 6 to 8 +move 2 from 7 to 9 +move 11 from 4 to 2 +move 1 from 4 to 2 +move 6 from 8 to 9 +move 1 from 7 to 1 +move 1 from 3 to 7 +move 3 from 7 to 8 +move 6 from 8 to 9 +move 6 from 4 to 8 +move 18 from 9 to 3 +move 1 from 5 to 8 +move 5 from 6 to 5 +move 6 from 8 to 1 +move 3 from 5 to 4 +move 1 from 9 to 8 +move 3 from 4 to 8 +move 15 from 3 to 6 +move 2 from 5 to 9 +move 3 from 3 to 1 +move 9 from 6 to 4 +move 2 from 1 to 5 +move 2 from 5 to 8 +move 6 from 4 to 2 +move 6 from 1 to 6 +move 3 from 4 to 6 +move 6 from 9 to 1 +move 4 from 2 to 1 +move 7 from 8 to 1 +move 1 from 6 to 7 +move 17 from 1 to 5 +move 1 from 7 to 1 +move 5 from 2 to 1 +move 1 from 8 to 6 +move 11 from 6 to 4 +move 2 from 2 to 3 +move 3 from 1 to 8 +move 7 from 2 to 5 +move 4 from 6 to 7 +move 4 from 1 to 5 +move 15 from 5 to 9 +move 2 from 3 to 7 +move 2 from 8 to 2 +move 1 from 1 to 9 +move 6 from 2 to 6 +move 7 from 5 to 6 +move 5 from 7 to 3 +move 1 from 6 to 1 +move 2 from 3 to 4 +move 1 from 3 to 4 +move 5 from 6 to 4 +move 14 from 9 to 2 +move 1 from 8 to 9 +move 1 from 7 to 8 +move 1 from 9 to 6 +move 2 from 9 to 5 +move 1 from 1 to 2 +move 7 from 6 to 9 +move 1 from 3 to 4 +move 8 from 5 to 2 +move 1 from 6 to 7 +move 1 from 7 to 4 +move 1 from 8 to 4 +move 1 from 3 to 9 +move 7 from 9 to 5 +move 1 from 9 to 1 +move 6 from 5 to 1 +move 8 from 2 to 4 +move 1 from 5 to 6 +move 1 from 6 to 7 +move 1 from 7 to 9 +move 7 from 2 to 9 +move 1 from 9 to 4 +move 3 from 9 to 1 +move 1 from 9 to 6 +move 11 from 2 to 8 +move 9 from 1 to 8 +move 1 from 6 to 4 +move 1 from 1 to 9 +move 12 from 4 to 2 +move 4 from 9 to 3 +move 3 from 4 to 6 +move 9 from 8 to 6 +move 12 from 4 to 9 +move 8 from 6 to 3 +move 8 from 2 to 7 +move 11 from 3 to 4 +move 2 from 2 to 7 +move 2 from 6 to 1 +move 1 from 2 to 3 +move 2 from 6 to 2 +move 3 from 2 to 6 +move 2 from 1 to 6 +move 1 from 6 to 1 +move 1 from 6 to 4 +move 2 from 6 to 3 +move 1 from 6 to 5 +move 4 from 3 to 8 +move 12 from 4 to 5 +move 5 from 9 to 7 +move 3 from 8 to 7 +move 1 from 9 to 1 +move 3 from 8 to 2 +move 13 from 5 to 6 +move 1 from 2 to 9 +move 13 from 6 to 7 +move 7 from 9 to 6 +move 2 from 4 to 6 +move 1 from 8 to 6 +move 1 from 1 to 6 +move 1 from 2 to 9 +move 1 from 2 to 3 +move 12 from 7 to 9 +move 7 from 8 to 4 +move 1 from 1 to 3 +move 2 from 7 to 9 +move 15 from 7 to 4 +move 8 from 6 to 3 +move 1 from 8 to 9 +move 1 from 7 to 2 +move 10 from 3 to 5 +move 6 from 5 to 9 +move 1 from 2 to 8 +move 1 from 5 to 8 +move 2 from 8 to 9 +move 10 from 4 to 9 +move 20 from 9 to 6 +move 1 from 7 to 6 +move 4 from 9 to 3 +move 1 from 5 to 9 +move 4 from 4 to 9 +move 8 from 9 to 7 +move 2 from 5 to 1 +move 7 from 4 to 3 +move 8 from 3 to 2 +move 6 from 9 to 8 +move 1 from 3 to 7 +move 1 from 3 to 1 +move 7 from 7 to 8 +move 13 from 8 to 3 +move 2 from 2 to 8 +move 1 from 8 to 2 +move 1 from 4 to 1 +move 1 from 1 to 8 +move 2 from 8 to 2 +move 24 from 6 to 2 +move 2 from 7 to 8 +move 5 from 3 to 4 +move 25 from 2 to 6 +move 5 from 4 to 9 +move 2 from 8 to 7 +move 2 from 7 to 3 +move 4 from 6 to 2 +move 2 from 6 to 4 +move 9 from 2 to 3 +move 11 from 3 to 7 +move 10 from 7 to 8 +move 1 from 7 to 9 +move 3 from 2 to 4 +move 8 from 8 to 2 +move 1 from 2 to 6 +move 2 from 4 to 1 +move 1 from 8 to 2 +move 1 from 6 to 9 +move 1 from 8 to 3 +move 6 from 9 to 7 +move 2 from 9 to 1 +move 9 from 6 to 8 +move 7 from 2 to 3 +move 7 from 8 to 2 +move 10 from 6 to 8 +move 7 from 1 to 2 +move 9 from 3 to 2 +move 5 from 3 to 8 +move 4 from 7 to 2 +move 2 from 3 to 2 +move 12 from 2 to 3 +move 6 from 4 to 2 +move 1 from 7 to 6 +move 5 from 3 to 5 +move 16 from 8 to 4 +move 12 from 2 to 7 +move 5 from 5 to 7 +move 1 from 8 to 3 +move 1 from 6 to 4 +move 17 from 7 to 4 +move 1 from 7 to 1 +move 1 from 1 to 9 +move 1 from 9 to 5 +move 11 from 4 to 9 +move 10 from 2 to 3 +move 1 from 5 to 4 +move 1 from 9 to 2 +move 2 from 2 to 1 +move 1 from 2 to 3 +move 23 from 4 to 5 +move 7 from 9 to 7 +move 3 from 9 to 1 +move 20 from 5 to 6 +move 3 from 5 to 8 +move 1 from 4 to 1 +move 2 from 8 to 3 +move 4 from 6 to 4 +move 7 from 7 to 2 +move 1 from 8 to 4 +move 19 from 3 to 9 +move 5 from 1 to 7 +move 7 from 2 to 6 +move 3 from 7 to 5 +move 2 from 3 to 4 +move 1 from 5 to 4 +move 1 from 1 to 4 +move 1 from 7 to 6 +move 13 from 6 to 7 +move 6 from 9 to 3 +move 1 from 3 to 5 +move 2 from 3 to 4 +move 2 from 6 to 2 +move 3 from 4 to 3 +move 8 from 9 to 1 +move 2 from 2 to 1 +move 8 from 6 to 7 +move 2 from 9 to 4 +move 20 from 7 to 1 +move 2 from 7 to 5 +move 2 from 5 to 1 +move 8 from 1 to 8 +move 8 from 8 to 6 +move 1 from 6 to 9 +move 8 from 6 to 1 +move 1 from 5 to 3 +move 7 from 3 to 2 +move 1 from 5 to 2 +move 2 from 9 to 7 +move 1 from 5 to 8 +move 18 from 1 to 4 +move 1 from 8 to 9 +move 3 from 2 to 3 +move 2 from 7 to 4 +move 5 from 2 to 4 +move 3 from 3 to 8 +move 8 from 1 to 7 +move 2 from 9 to 2 +move 32 from 4 to 5 +move 1 from 9 to 7 +move 1 from 2 to 1 +move 6 from 1 to 6 +move 1 from 2 to 4 +move 3 from 8 to 1 +move 3 from 6 to 5 +move 1 from 3 to 6 +move 2 from 1 to 9 +move 4 from 4 to 7 +move 31 from 5 to 4 +move 4 from 5 to 6 +move 1 from 6 to 1 +move 7 from 6 to 5 +move 1 from 9 to 4 +move 19 from 4 to 2 +move 1 from 5 to 9 +move 5 from 5 to 6 +move 3 from 4 to 2 +move 2 from 7 to 1 +move 4 from 7 to 8 +move 3 from 8 to 6 +move 2 from 6 to 7 +move 6 from 7 to 8 +move 3 from 1 to 5 +move 4 from 5 to 9 +move 15 from 2 to 1 +move 4 from 6 to 4 +move 2 from 6 to 3 +move 1 from 3 to 7 +move 4 from 1 to 2 +move 1 from 3 to 4 +move 2 from 7 to 4 +move 5 from 9 to 3 +move 2 from 7 to 3 +move 16 from 4 to 8 +move 8 from 8 to 5 +move 2 from 1 to 5 +move 1 from 9 to 6 +move 1 from 6 to 5 +move 7 from 5 to 9 +move 3 from 1 to 8 +move 1 from 8 to 4 +move 8 from 2 to 7 +move 3 from 1 to 3 +move 1 from 3 to 9 +move 2 from 4 to 2 +move 7 from 8 to 5 +move 7 from 9 to 1 +move 6 from 3 to 5 +move 6 from 7 to 4 +move 3 from 4 to 1 +move 3 from 2 to 5 +move 1 from 7 to 8 +move 1 from 7 to 5 +move 1 from 9 to 8 +move 2 from 2 to 4 +move 15 from 1 to 6 +move 8 from 5 to 9 +move 3 from 3 to 4 +move 4 from 4 to 3 +move 1 from 9 to 7 +move 6 from 9 to 4 +move 1 from 9 to 2 +move 6 from 4 to 9 +move 2 from 4 to 6 +move 5 from 6 to 9 +move 1 from 3 to 1 +move 8 from 6 to 8 +move 12 from 5 to 3 +move 1 from 5 to 3 +move 1 from 3 to 8 +move 4 from 6 to 1 +move 11 from 3 to 8 +move 1 from 2 to 1 +move 23 from 8 to 2 +move 3 from 1 to 2 +move 1 from 1 to 9 +move 2 from 2 to 3 +move 6 from 3 to 6 +move 1 from 7 to 6 +move 1 from 4 to 7 +move 1 from 4 to 3 +move 1 from 7 to 3 +move 4 from 8 to 4 +move 2 from 1 to 8 +move 3 from 8 to 1 +move 4 from 6 to 2 +move 7 from 9 to 1 +move 1 from 9 to 6 +move 2 from 2 to 3 +move 3 from 9 to 4 +move 1 from 9 to 3 +move 10 from 2 to 8 +move 16 from 2 to 5 +move 2 from 3 to 6 +move 6 from 1 to 8 +move 1 from 1 to 5 +move 8 from 8 to 5 +move 11 from 5 to 9 +move 2 from 1 to 8 +move 1 from 1 to 8 +move 4 from 4 to 6 +move 3 from 3 to 9 +move 14 from 9 to 3 +move 15 from 8 to 5 +move 9 from 5 to 4 +move 7 from 6 to 1 +move 1 from 6 to 3 +move 4 from 4 to 7 +move 2 from 6 to 2 +move 4 from 7 to 4 +move 4 from 1 to 4 +move 10 from 4 to 3 +move 14 from 3 to 6 +move 5 from 4 to 1 +move 6 from 5 to 7 +move 1 from 2 to 6 +move 3 from 7 to 2 +move 2 from 2 to 3 +move 3 from 7 to 8 +move 2 from 8 to 2 +move 2 from 2 to 7 +move 6 from 6 to 2 +move 1 from 8 to 7 +move 8 from 2 to 7 +move 1 from 4 to 1 +move 5 from 5 to 3 +move 3 from 3 to 2 +move 5 from 1 to 3 +move 7 from 5 to 8 +move 6 from 6 to 3 +move 1 from 5 to 9 +move 10 from 7 to 9 +move 26 from 3 to 4 +move 1 from 5 to 1 +move 6 from 8 to 2 +move 9 from 2 to 9 +move 1 from 7 to 5 +move 1 from 8 to 5 +move 2 from 6 to 2 +move 20 from 9 to 6 +move 1 from 1 to 6 +move 1 from 4 to 2 +move 1 from 5 to 8 +move 1 from 5 to 7 +move 3 from 1 to 3 +move 1 from 3 to 6 +move 12 from 4 to 8 +move 11 from 4 to 5 +move 1 from 7 to 5 +move 1 from 2 to 8 +move 1 from 1 to 8 +move 2 from 2 to 5 +move 8 from 6 to 2 +move 5 from 6 to 4 +move 2 from 5 to 3 +move 12 from 8 to 4 +move 5 from 2 to 6 +move 3 from 8 to 1 +move 11 from 6 to 8 +move 10 from 4 to 6 +move 5 from 4 to 6 +move 12 from 6 to 5 +move 22 from 5 to 6 +move 3 from 6 to 5 +move 3 from 8 to 5 +move 1 from 3 to 8 +move 4 from 8 to 1 +move 6 from 1 to 7 +move 5 from 6 to 9 \ No newline at end of file diff --git a/day5/main1.py b/day5/main1.py new file mode 100644 index 0000000..c451188 --- /dev/null +++ b/day5/main1.py @@ -0,0 +1,53 @@ +with open("day5\input.txt") as f: + data = f.readlines() + +''' + +[J] [F] [M] +[Z] [F] [G] [Q] [F] +[G] [P] [H] [Z] [S] [Q] +[V] [W] [Z] [P] [D] [G] [P] +[T] [D] [S] [Z] [N] [W] [B] [N] +[D] [M] [R] [J] [J] [P] [V] [P] [J] +[B] [R] [C] [T] [C] [V] [C] [B] [P] +[N] [S] [V] [R] [T] [N] [G] [Z] [W] + 1 2 3 4 5 6 7 8 9 + + +move 2 from 4 to 6 +Move amount from target to destination, one at the time, (pop,append) +Give [-1] of each stack at the end. + +''' + +#Create lists +cargo_processed = False +cargo_hold = [] +for line in data: + if line == "\n": + continue + if not len(cargo_hold): + for cargo_spot in line[1:-2:4]: + cargo_hold.append([]) + if not cargo_processed: + for position,char in enumerate(line[1:-2:4]): + if char == '1': + #Done parsing. switch to stacking + for stack in cargo_hold: + stack.reverse() + print(cargo_hold) + cargo_processed = True + break + if char == ' ': + continue + cargo_hold[position].append(char) + else: + #Start reading instructions + # Example move 2 from 4 to 6 + move_command = [int(s) for s in line.split() if s.isdigit()] + for i in range(0,move_command[0]): + cargo_hold[move_command[2]-1].append(cargo_hold[move_command[1]-1].pop()) +for cargo in cargo_hold: + print(cargo[-1]) + +#GFTNRBZPF \ No newline at end of file diff --git a/day5/main2.py b/day5/main2.py new file mode 100644 index 0000000..ca79745 --- /dev/null +++ b/day5/main2.py @@ -0,0 +1,54 @@ +with open("day5\input.txt") as f: + data = f.readlines() + +''' + +[J] [F] [M] +[Z] [F] [G] [Q] [F] +[G] [P] [H] [Z] [S] [Q] +[V] [W] [Z] [P] [D] [G] [P] +[T] [D] [S] [Z] [N] [W] [B] [N] +[D] [M] [R] [J] [J] [P] [V] [P] [J] +[B] [R] [C] [T] [C] [V] [C] [B] [P] +[N] [S] [V] [R] [T] [N] [G] [Z] [W] + 1 2 3 4 5 6 7 8 9 + + +move 2 from 4 to 6 +Move amount from target to destination, In one go, (pop(amount),append) +Give [-1] of each stack at the end. + +''' + +#Create lists +cargo_processed = False +cargo_hold = [] +for line in data: + if line == "\n": + continue + if not len(cargo_hold): + for cargo_spot in line[1:-2:4]: + cargo_hold.append([]) + if not cargo_processed: + for position,char in enumerate(line[1:-2:4]): + if char == '1': + #Done parsing. switch to stacking + for stack in cargo_hold: + stack.reverse() + print(cargo_hold) + cargo_processed = True + break + if char == ' ': + continue + cargo_hold[position].append(char) + else: + #Start reading instructions + # Example move 2 from 4 to 6 + move_command = [int(s) for s in line.split() if s.isdigit()] + reverselist = [cargo_hold[move_command[1]-1].pop() for idx in range(move_command[0])] + reverselist.reverse() + cargo_hold[move_command[2]-1] = cargo_hold[move_command[2]-1] + reverselist +for cargo in cargo_hold: + print(cargo[-1]) + +#VRQWPDSGP \ No newline at end of file