Day 3 part 1
This commit is contained in:
parent
6ae48855c2
commit
c879dbd339
1 changed files with 40 additions and 0 deletions
40
3/3.py
Executable file
40
3/3.py
Executable file
|
@ -0,0 +1,40 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# 2021 - Advent Of Code - 3
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
|
line_count = 0
|
||||||
|
count = [0 for x in range(12)]
|
||||||
|
result = [0 for x in range(12)]
|
||||||
|
|
||||||
|
re_parse = re.compile(r'(\d)'*12)
|
||||||
|
|
||||||
|
with open('input.txt') as f:
|
||||||
|
for line in f:
|
||||||
|
m = re_parse.match(line)
|
||||||
|
line_count += 1
|
||||||
|
|
||||||
|
for i in range(12):
|
||||||
|
if m.group(i+1) == '1':
|
||||||
|
count[i] += 1
|
||||||
|
|
||||||
|
for i in range(12):
|
||||||
|
if count[i] > line_count / 2:
|
||||||
|
result[i] = 1
|
||||||
|
else:
|
||||||
|
result[i] = 0
|
||||||
|
|
||||||
|
|
||||||
|
print(count)
|
||||||
|
invert_result = [0 if x == 1 else 1 for x in result]
|
||||||
|
|
||||||
|
gamma_bin = "".join([str(x) for x in result])
|
||||||
|
gamma = int(gamma_bin, 2)
|
||||||
|
|
||||||
|
epsilon_bin = "".join([str(x) for x in invert_result])
|
||||||
|
epsilon = int(epsilon_bin, 2)
|
||||||
|
|
||||||
|
print(f'gamma_bin {gamma_bin}, gamma: {gamma}')
|
||||||
|
print(f'epsilon_bin {epsilon_bin}, epsilon: {epsilon}')
|
||||||
|
|
||||||
|
print(f'power consumption: ({gamma}, {epsilon}) => {gamma * epsilon}')
|
Loading…
Reference in a new issue