Files
python-aoc-2021/day03/part2.py
Sebastian Seedorf 36c63a510c Day 03
2021-12-03 09:48:57 +01:00

21 lines
501 B
Python

#!/usr/bin/env python3
def find(is_lowest):
lines = (x.strip() for x in open("input.txt"))
for bit in range(12):
zeros = []
ones = []
for line in lines:
zeros.append(line) if line[bit] == '0' else ones.append(line)
lines = zeros if (len(zeros) > len(ones)) != is_lowest else ones
if len(lines) <= 1:
break
return lines[0]
gamma = int(''.join(find(True)), 2)
epsilon = int(''.join(find(False)), 2)
print(gamma * epsilon)