advent_of_code/2021/03/part-002.py

62 lines
1.6 KiB
Python
Executable File

#!/usr/bin/env python3
import sys
line_count = 0
lines = []
def search_elements(mylist, position=0, search='most'):
# print('position: {}, search: {}'.format(position, search))
# print('list: {}'.format(mylist))
# break if only one element
if len(mylist) == 1:
return mylist[0]
list_length = len(mylist)
erg = 0
OneArray = []
NullArray = []
for elem in mylist:
# elem_length = len(elem)
if int(elem[position]) == 1:
erg = erg + 1
OneArray.append(elem)
else:
NullArray.append(elem)
if search == 'most':
if erg == list_length/2:
return search_elements(OneArray, position=position+1, search=search)
elif erg > list_length/2:
return search_elements(OneArray, position=position+1, search=search)
else:
return search_elements(NullArray, position=position+1, search=search)
if search == 'least':
if erg == list_length/2:
return search_elements(NullArray, position=position+1, search=search)
if erg < list_length/2:
return search_elements(OneArray, position=position+1, search=search)
else:
return search_elements(NullArray, position=position+1, search=search)
with open('input.txt', 'r') as myfile:
for line in myfile:
lines.append(line)
line_count = len(lines)
most = search_elements(lines, position=0, search='most')
least = search_elements(lines, position=0, search='least')
print(most)
print(least)
print(int(most, 2) * int(least, 2))
sys.exit()