Day 5 python

main
Vuun 2024-03-17 11:11:00 +01:00
parent e199c391c5
commit a39d68240a
1 changed files with 56 additions and 0 deletions

56
python/Day 5/main.py Normal file
View File

@ -0,0 +1,56 @@
from io import open
# We open the txt document containing the games
input=open('input.txt','r')
# We read the text inside distinguishing by lines
lines=input.read().split('\n\n')
# Close the txt file to be able to work on the text without having the file open.
input.close()
del(input)
# Tratamiento del fichero para poder obtener los números con los que trabajar
names=[]
list_numbers=[]
numbers=[]
almanac=[]
for index,line in enumerate(lines):
components=line.split(':')
names.append(components[0])
numbers.append(components[1])
for index,element in enumerate(numbers):
if index==0:
numbers_str=numbers[index].split()
numbers_int=[int(numero) for numero in numbers_str]
list_numbers.append(numbers_int)
else:
numbers_str=numbers[index].split()
numbers_int=[int(numero) for numero in numbers_str]
list=[]
for indice,element in enumerate(numbers_int):
for i in range(-1,len(numbers_int),3):
if indice==i:
list.append([numbers_int[indice-2],numbers_int[indice-1],numbers_int[indice]])
list_numbers.append(list)
# Se recoge en la variable names[] el nombre de los destinos y origenes y en list_numbers los números de origen
location=[]
for seed,number in enumerate(list_numbers[0]):
for i in range(1,len(names)):
a=False
for x in range(len(list_numbers[i])):
destination_range_start=list_numbers[i][x][0]
source_range_start=list_numbers[i][x][1]
range_length=list_numbers[i][x][2]
if number in range(source_range_start,source_range_start+range_length) and a==False:
number=(number-source_range_start)+destination_range_start
a=True
else:
number=number
location.append(number)
if i==len(names)-1:
almanac=min(location)
print(almanac)