Skip to content

Instantly share code, notes, and snippets.

@Mu-adventofcode
Created May 25, 2022 19:55
Show Gist options
  • Save Mu-adventofcode/cc8bedf9ca80f16d0c7e19edcd462aef to your computer and use it in GitHub Desktop.
Save Mu-adventofcode/cc8bedf9ca80f16d0c7e19edcd462aef to your computer and use it in GitHub Desktop.
AoC 2021 16 I iterator version
def versions(data):
while data:
yield int(data[:3], 2)
ptype = int(data[3:6], 2)
data = data[6:]
if ptype == 4:
while data[0] == "1":
data = data[5:]
data = data[5:]
else:
ltype = data[0]
if ltype == "0":
data = data[16:]
else:
data = data[12:]
hexstr = open("input_16.txt").read().strip()
packet = "".join(f"{int(ch, 16):04b}" for ch in hexstr)
result = sum(v for v in versions(packet))
print(result)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment