From dee7f57b2ad00fc87b87b76a9f035f877696a786 Mon Sep 17 00:00:00 2001 From: DUEFON Date: Mon, 5 Dec 2022 19:31:03 +0100 Subject: [PATCH] part 2 for 5 and 2 --- five.py | 8 ++++---- two.py | 7 ++++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/five.py b/five.py index 87ad9d9..808128e 100755 --- a/five.py +++ b/five.py @@ -5,12 +5,12 @@ beg, rec = headerfooter(open(0)) begl = beg.split('\n') a = np.asarray([c for l in begl for c in l]).reshape((len(begl), -1)).T[1::4,::-1] dock = [None, *[deque(c for c in l if not c in '0123456789 ') for l in a]] -ic(a, dock) +twock = [None, *[deque(c for c in l if not c in '0123456789 ') for l in a]] for l in rec.strip().split('\n'): num, src, dst = (int(n) for n in re.match(r'move (\d+) from (\d+) to (\d+)', l).groups()) - ic(num, src, dst) - for i in range(num): # ugh - dock[dst].extend(dock[src].pop()) + dock[dst].extend(dock[src].pop() for i in range(num)) # ugh + twock[dst].extend([twock[src].pop() for i in range(num)][::-1]) print(''.join([d.pop() for d in dock[1:]])) +print(''.join([d.pop() for d in twock[1:]])) diff --git a/two.py b/two.py index 9602830..1462850 100755 --- a/two.py +++ b/two.py @@ -12,6 +12,11 @@ def bonus(a, b): # for b (that's us) [0, 3, 6], [6, 0, 3]][prd(a)][prd(b)] +def wpn(a, b): # for b (that's us) + return 'XYZ'[[[2, 0, 1], + [0, 1, 2], + [1, 2, 0]][prd(a)][prd(b)]] + rounds = [[l[0], l[2]] for l in lines(open(0))] -ic([[a, b, scores(b), bonus(a, b)] for a, b in rounds]) print(sum(scores(b) + bonus(a, b) for a, b in rounds)) +print(sum(scores(wpn(a, b)) + bonus(a, wpn(a, b)) for a, b in rounds))