From ab12c493a9cb2a4d66ae612c708b9ebb5dc9743c Mon Sep 17 00:00:00 2001 From: Tomasz Kramkowski Date: Fri, 24 Dec 2021 23:53:05 +0000 Subject: day 24: python --- 24.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 24.py diff --git a/24.py b/24.py new file mode 100644 index 0000000..fee2116 --- /dev/null +++ b/24.py @@ -0,0 +1,28 @@ +from utils import open_day + +digits = dict() +stack = list() + +with open_day(24) as f: + dig = 0 + for i, line in enumerate(f): + _, *operands = line.rstrip().split(' ') + if i % 18 == 4: push = operands[1] == '1' + if i % 18 == 5: sub = int(operands[1]) + if i % 18 == 15: + add = int(operands[1]) + if push: + stack.append((dig, add)) + else: + sibling, add = stack.pop() + diff = add + sub + if diff < 0: + digits[sibling] = (-diff + 1, 9) + digits[dig] = (1, 9 + diff) + else: + digits[sibling] = (1, 9 - diff) + digits[dig] = (1 + diff, 9) + dig += 1 + +print(''.join(str(digits[d][1]) for d in sorted(digits.keys()))) +print(''.join(str(digits[d][0]) for d in sorted(digits.keys()))) -- cgit v1.2.3