From c527de2e10d7052eced141b70ab434b52ad58879 Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Fri, 17 Dec 2021 07:48:06 +0100 Subject: [PATCH] day16: don't play with strings when calculating values ... --- day16.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/day16.py b/day16.py index 21ddf75..8ccb452 100644 --- a/day16.py +++ b/day16.py @@ -80,12 +80,12 @@ def get_value(packet: str) -> int: return max(get_value(p) for p in get_subpackages(this_packet)) elif pkg_type == 4: index = 6 - pkg_bits = "" + value = 0 while this_packet[index] == "1": - pkg_bits += this_packet[index + 1:index + 5] + value = value * 16 + int(this_packet[index + 1:index + 5], 2) index += 5 - pkg_bits += this_packet[index + 1:index + 5] - return int(pkg_bits, 2) + value = value * 16 + int(this_packet[index + 1:index + 5], 2) + return value elif pkg_type == 5: sub_pkg = get_subpackages(this_packet) return get_value(sub_pkg[0]) > get_value(sub_pkg[1])