Browse Source

Solve 2021 Day 3 Part 1 in python

master
Garrit Franke 2 years ago
parent
commit
c1b05a3664
Signed by: garrit
GPG Key ID: 65586C4DDA55EA2C
  1. 35
      2021/Day3/Python/binary_diagnostics.py

35
2021/Day3/Python/binary_diagnostics.py

@ -0,0 +1,35 @@
def most_common(lst):
return max(set(lst), key=lst.count)
def least_common(lst):
return min(set(lst), key=lst.count)
# Part 1
with open("../input.txt") as f:
lines = list(map(lambda l: l.strip(), f.readlines()))
binaries = [[] for _ in list(lines[0])]
for line in lines:
for i, bit in enumerate(line):
binaries[i].append(bit)
gamma_bin = ""
epsilon_bin = ""
for column in binaries:
print(column)
gamma_bin += most_common(column)
epsilon_bin += least_common(column)
gamma = int(gamma_bin, 2)
epsilon = int(epsilon_bin, 2)
print(f"Gamma: {gamma}")
print(f"Epsilon: {epsilon}")
print(f"Gamma * Epsilon: {gamma * epsilon}")
# Part 2
with open("../input.txt") as f:
lines = map(lambda l: l.strip(), f.readlines())
Loading…
Cancel
Save