first commit
This commit is contained in:
49
2025/day03/part2.py
Normal file
49
2025/day03/part2.py
Normal file
@@ -0,0 +1,49 @@
|
||||
# input = "3285251637222363222472154314252527157326423323532213732223724533233636375713623545544337332247253314"
|
||||
# input = """987654321111111
|
||||
# 811111111111119
|
||||
# 234234234234278
|
||||
# 818181911112111"""
|
||||
result = 0
|
||||
|
||||
with open("input.txt", "r") as file:
|
||||
input = file.read()
|
||||
|
||||
|
||||
def cruncher(block: str, minimum: int):
|
||||
print(minimum,block," len",len(block))
|
||||
for i in range(9, 0, -1):
|
||||
print("i -", i)
|
||||
print("сколько",i,"в блоке",block.count(str(i)))
|
||||
if block.count(str(i)) != 0:
|
||||
result = block[block.index(str(i))+1:]
|
||||
print(result," len ", len(result))
|
||||
if len(result)+1 >= minimum and minimum != 1:
|
||||
print(result,"первый выход")
|
||||
return[i,result]
|
||||
elif minimum == 1:
|
||||
print(result," последний шанс")
|
||||
return [i, i]
|
||||
else:
|
||||
print(f"остаток с права от {i} слишком мал")
|
||||
pass
|
||||
else:
|
||||
print(f"в блоке нету {i}")
|
||||
pass # не нашли это число
|
||||
|
||||
for block in input.splitlines():
|
||||
print(f"block: {block}")
|
||||
semiresult = ""
|
||||
reminder = block
|
||||
while len(semiresult) != 12:
|
||||
result_list = cruncher(reminder, 12 - len(semiresult))
|
||||
if result_list:
|
||||
semiresult += str(result_list[0])
|
||||
reminder = result_list[1]
|
||||
else:
|
||||
print("кранчер не вернул результата")
|
||||
break
|
||||
print(semiresult,"len",len(semiresult))
|
||||
print("="*100)
|
||||
print(semiresult,"len",len(semiresult))
|
||||
result += int(semiresult)
|
||||
print(f"result - {result}")
|
||||
Reference in New Issue
Block a user