trois premiers jours
This commit is contained in:
72
day3.py
Normal file
72
day3.py
Normal file
@ -0,0 +1,72 @@
|
||||
# data = "xmul(2,4)&mul[3,7]!^don't()_mul(5,5)+mul(32,64](mul(11,8)undo()?mul(8,5))"
|
||||
|
||||
PART1 = False
|
||||
with open('day3.txt') as f:
|
||||
l = [line.rstrip() for line in f]
|
||||
data = ""
|
||||
for line in l:
|
||||
data += line
|
||||
|
||||
mul = []
|
||||
|
||||
if PART1:
|
||||
|
||||
for i in range(len(data)):
|
||||
window = data[i:i+4]
|
||||
print("window=",window)
|
||||
if window == "mul(":
|
||||
for j in range(i+4,min(i+4+8,len(data))):
|
||||
print(data[j])
|
||||
if data[j]==")":
|
||||
to_test = data[i+4:j]
|
||||
|
||||
# print("to_test=", to_test)
|
||||
to_test = to_test.split(",")
|
||||
# print("to_test=", to_test)
|
||||
if len(to_test)==2:
|
||||
try :
|
||||
a,b = int(to_test[0]),int(to_test[1])
|
||||
print("ab = ", a, b)
|
||||
mul.append(a*b)
|
||||
|
||||
|
||||
except :
|
||||
# print("not int")
|
||||
pass
|
||||
|
||||
else :
|
||||
do = True
|
||||
for i in range(len(data)):
|
||||
window_do = data[i:i+7]
|
||||
print("window_do=",window_do)
|
||||
if window_do == "don't()":
|
||||
do = False
|
||||
elif "do()" in window_do:
|
||||
do = True
|
||||
window = data[i:i+4]
|
||||
print("window=",window)
|
||||
if window== "mul(":
|
||||
for j in range(i+4,min(i+4+8,len(data))):
|
||||
print(data[j])
|
||||
if data[j]==")":
|
||||
to_test = data[i+4:j]
|
||||
|
||||
# print("to_test=", to_test)
|
||||
to_test = to_test.split(",")
|
||||
# print("to_test=", to_test)
|
||||
if len(to_test)==2 and do:
|
||||
try :
|
||||
a,b = int(to_test[0]),int(to_test[1])
|
||||
print("ab = ", a, b)
|
||||
mul.append(a*b)
|
||||
|
||||
|
||||
except :
|
||||
print("not int")
|
||||
pass
|
||||
|
||||
|
||||
print(mul)
|
||||
tot = sum(mul)
|
||||
|
||||
print(tot)
|
||||
Reference in New Issue
Block a user