The first half of this puzzle is complete! It provides one gold star: *
This commit is contained in:
60
2025/day06/part1_lexx.py
Normal file
60
2025/day06/part1_lexx.py
Normal file
@@ -0,0 +1,60 @@
|
||||
from functools import reduce
|
||||
# обрабатывваем инпут, возвращает karta.
|
||||
# karta: list[list] = [[123,328,51,64],
|
||||
# [45,64,387,23],
|
||||
# [6,98,215,314],
|
||||
# ['*','+','*','+']]
|
||||
input = """123 328 51 64
|
||||
45 64 387 23
|
||||
6 98 215 314
|
||||
* + * +
|
||||
"""
|
||||
with open("input_lexx.txt", "r") as file:
|
||||
input = file.read()
|
||||
karta = []
|
||||
for row in input.splitlines():
|
||||
karta.append([])
|
||||
for elemet in row.split(' '):
|
||||
# print(elemet)
|
||||
if elemet == '':
|
||||
pass
|
||||
elif elemet == '*':
|
||||
# print("elemet == '*'",type(elemet))
|
||||
karta[-1].append(str(elemet))
|
||||
elif elemet == '+':
|
||||
# print("elemet == '+'",type(elemet))
|
||||
karta[-1].append(str(elemet))
|
||||
else:
|
||||
# print(type(elemet))
|
||||
karta[-1].append(int(elemet))
|
||||
# print("end of row")
|
||||
|
||||
# print(karta)
|
||||
|
||||
# функция собирающая строчку из списка
|
||||
stroka: list[int]= []
|
||||
move: str = ""
|
||||
final_result: int = 0
|
||||
print("="*10)
|
||||
print(f"Предстоит создать и обрабоать {len(karta[0])} строк")
|
||||
for y in range(len(karta[0])):
|
||||
print("="*10)
|
||||
print(f"Обработака строки {y+1}")
|
||||
for x in range(len(karta)):
|
||||
if isinstance(karta[x][y],int):
|
||||
stroka.append(karta[x][y])
|
||||
else:
|
||||
move = karta[x][y]
|
||||
print(stroka)
|
||||
print("Действие",move)
|
||||
if move == "+":
|
||||
result: int= sum(stroka)
|
||||
print("Результат",result)
|
||||
elif move == "*":
|
||||
result: int = reduce((lambda x, y: x * y), stroka)
|
||||
print("Результат",result)
|
||||
final_result += result
|
||||
if y == len(karta[0])-1:
|
||||
print("="*10)
|
||||
print("Сумма всех строк",final_result)
|
||||
stroka: list[int]= []
|
||||
Reference in New Issue
Block a user