From a39d68240a88520f6dc8a3f62c68416cf60421f9 Mon Sep 17 00:00:00 2001 From: Vuun Date: Sun, 17 Mar 2024 11:11:00 +0100 Subject: [PATCH] Day 5 python --- python/Day 5/main.py | 56 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 python/Day 5/main.py diff --git a/python/Day 5/main.py b/python/Day 5/main.py new file mode 100644 index 0000000..ba5a1c3 --- /dev/null +++ b/python/Day 5/main.py @@ -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)