03-2 fertig
This commit is contained in:
19
03/03-1.py
19
03/03-1.py
@@ -4,7 +4,7 @@
|
|||||||
part_sum = 0
|
part_sum = 0
|
||||||
matrix = []
|
matrix = []
|
||||||
|
|
||||||
input_file = open("input-ex.txt", "r")
|
input_file = open("input.txt", "r")
|
||||||
for line in input_file:
|
for line in input_file:
|
||||||
matrix.append(line.strip())
|
matrix.append(line.strip())
|
||||||
input_file.close()
|
input_file.close()
|
||||||
@@ -35,10 +35,24 @@ for z in range(zeilen):
|
|||||||
elif pre_is_num:
|
elif pre_is_num:
|
||||||
num += matrix[z][s]
|
num += matrix[z][s]
|
||||||
|
|
||||||
|
for nu in num_list:
|
||||||
|
ist_teil = False
|
||||||
|
for z in range(nu[1]-1, nu[1]+2):
|
||||||
|
for s in range(nu[2]-1, nu[3]+2):
|
||||||
|
try:
|
||||||
|
if matrix[z][s] != "." and not matrix[z][s].isdigit():
|
||||||
|
ist_teil = True
|
||||||
|
except IndexError:
|
||||||
|
pass
|
||||||
|
if ist_teil:
|
||||||
|
part_sum += nu[0]
|
||||||
|
|
||||||
|
# ######### AUSGABE #########################################################
|
||||||
# Matrix-Ausgabe
|
# Matrix-Ausgabe
|
||||||
for x in matrix:
|
for x in matrix:
|
||||||
print(x)
|
print(x)
|
||||||
|
|
||||||
|
print()
|
||||||
print(f"Zeilen: {zeilen}")
|
print(f"Zeilen: {zeilen}")
|
||||||
print(f"Spalten: {spalten}")
|
print(f"Spalten: {spalten}")
|
||||||
print()
|
print()
|
||||||
@@ -46,3 +60,6 @@ print()
|
|||||||
# num_list ausgabe
|
# num_list ausgabe
|
||||||
for n in num_list:
|
for n in num_list:
|
||||||
print(n)
|
print(n)
|
||||||
|
|
||||||
|
# Solution:
|
||||||
|
print(f"Lösung: {part_sum}")
|
||||||
|
|||||||
75
03/03-2.py
Normal file
75
03/03-2.py
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
gear_ratio_sum = 0
|
||||||
|
matrix = []
|
||||||
|
|
||||||
|
input_file = open("input.txt", "r")
|
||||||
|
for line in input_file:
|
||||||
|
matrix.append(line.strip())
|
||||||
|
input_file.close()
|
||||||
|
|
||||||
|
zeilen = len(matrix)
|
||||||
|
spalten = len(matrix[0])
|
||||||
|
|
||||||
|
num_list = []
|
||||||
|
for z in range(zeilen):
|
||||||
|
pre_is_num = False
|
||||||
|
num_start, num_end = 0, 0
|
||||||
|
num = ""
|
||||||
|
for s in range(spalten):
|
||||||
|
if matrix[z][s].isdigit() and s == spalten - 1:
|
||||||
|
num += matrix[z][s]
|
||||||
|
if num_start == 0:
|
||||||
|
num_start = s
|
||||||
|
num_end = s
|
||||||
|
num_list.append([int(num), z, num_start, num_end])
|
||||||
|
elif pre_is_num and not matrix[z][s].isdigit():
|
||||||
|
num_end = s - 1
|
||||||
|
num_list.append([int(num), z, num_start, num_end])
|
||||||
|
pre_is_num = False
|
||||||
|
elif not pre_is_num and matrix[z][s].isdigit():
|
||||||
|
num = matrix[z][s]
|
||||||
|
num_start = s
|
||||||
|
pre_is_num = True
|
||||||
|
elif pre_is_num:
|
||||||
|
num += matrix[z][s]
|
||||||
|
|
||||||
|
askerisk_list = []
|
||||||
|
for nu in num_list:
|
||||||
|
ist_teil = False
|
||||||
|
for z in range(nu[1]-1, nu[1]+2):
|
||||||
|
for s in range(nu[2]-1, nu[3]+2):
|
||||||
|
try:
|
||||||
|
if matrix[z][s] == "*":
|
||||||
|
askerisk_list.append([nu[0], z, s])
|
||||||
|
except IndexError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
for i in range(len(askerisk_list)-1):
|
||||||
|
for j in range(i+1, len(askerisk_list)):
|
||||||
|
if askerisk_list[i][1] == askerisk_list[j][1] and askerisk_list[i][2] == askerisk_list[j][2]:
|
||||||
|
gear_ratio_sum += (askerisk_list[i][0]*askerisk_list[j][0])
|
||||||
|
|
||||||
|
# ######### AUSGABE #########################################################
|
||||||
|
# Matrix-Ausgabe
|
||||||
|
for x in matrix:
|
||||||
|
print(x)
|
||||||
|
|
||||||
|
print()
|
||||||
|
print(f"Zeilen: {zeilen}")
|
||||||
|
print(f"Spalten: {spalten}")
|
||||||
|
print()
|
||||||
|
|
||||||
|
# num_list ausgabe
|
||||||
|
for n in num_list:
|
||||||
|
print(n)
|
||||||
|
|
||||||
|
# askerisk_list
|
||||||
|
print()
|
||||||
|
for x in askerisk_list:
|
||||||
|
print(x)
|
||||||
|
|
||||||
|
# Solution
|
||||||
|
print()
|
||||||
|
print(f"Total GearRatio: {gear_ratio_sum}")
|
||||||
Reference in New Issue
Block a user