parent
3b46267923
commit
4c3f765fb6
3 changed files with 51 additions and 0 deletions
@ -0,0 +1,2 @@ |
|||||||
|
*.swp |
||||||
|
*.swo |
@ -0,0 +1,37 @@ |
|||||||
|
lines = open("input.txt", 'r').read().splitlines() |
||||||
|
leng = len(lines) |
||||||
|
bits = len(lines[0]) |
||||||
|
|
||||||
|
def fun(bol): |
||||||
|
targetCandidates = list(range(0,leng)) |
||||||
|
rating = 0 |
||||||
|
target = True |
||||||
|
for i in range(0, bits): |
||||||
|
count = 0 |
||||||
|
vacate = [] |
||||||
|
for j in targetCandidates: |
||||||
|
if len(targetCandidates) == 1: |
||||||
|
o2 = int(lines[j], 2) |
||||||
|
break |
||||||
|
elif i != 0 and bool(int(lines[j][i-1])) != target : |
||||||
|
vacate.append(j) |
||||||
|
elif bool(int(lines[j][i])): |
||||||
|
count += 1 |
||||||
|
targetCandidates = [i for i in targetCandidates if i not in vacate] |
||||||
|
if count >= len(targetCandidates)/2 and bol: |
||||||
|
target = True |
||||||
|
elif count < len(targetCandidates)/2 and not bol: |
||||||
|
target = True |
||||||
|
else: |
||||||
|
target = False |
||||||
|
if len(targetCandidates) == 2: |
||||||
|
if bool(int(lines[targetCandidates[0]][i])) == target: |
||||||
|
return int(lines[targetCandidates[0]], 2) |
||||||
|
else: |
||||||
|
return int(lines[targetCandidates[1]], 2) |
||||||
|
elif len(targetCandidates) == 1: |
||||||
|
return int(lines[targetCandidates[0]], 2) |
||||||
|
|
||||||
|
|
||||||
|
print(fun(True)*fun(False)) |
||||||
|
|
@ -0,0 +1,12 @@ |
|||||||
|
00100 |
||||||
|
11110 |
||||||
|
10110 |
||||||
|
10111 |
||||||
|
10101 |
||||||
|
01111 |
||||||
|
00111 |
||||||
|
11100 |
||||||
|
10000 |
||||||
|
11001 |
||||||
|
00010 |
||||||
|
01010 |
Loading…
Reference in new issue