-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathday3-2.py
26 lines (20 loc) · 827 Bytes
/
day3-2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
numbers = [line.strip() for line in open('2021//input//day3.txt').readlines()]
numbers_copy = numbers.copy()
oxy_rating = 0
co2_rating = 0
for i in range(len(numbers[0])):
num_ones = sum(int(numbers[j][i]) for j in range(len(numbers)))
bit_i = "1" if num_ones >= (len(numbers) - num_ones) else "0"
numbers = [number for number in numbers if number[i] == bit_i]
if len(numbers) == 1:
oxy_rating = int(numbers[0], 2)
break
numbers = numbers_copy
for i in range(len(numbers[0])):
num_ones = sum(int(numbers[j][i]) for j in range(len(numbers)))
bit_i = "0" if num_ones >= (len(numbers) - num_ones) else "1"
numbers = [number for number in numbers if number[i] == bit_i]
if len(numbers) == 1:
co2_rating = int(numbers[0], 2)
break
print(oxy_rating * co2_rating)