Day 5 python
parent
e199c391c5
commit
a39d68240a
|
|
@ -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)
|
||||||
Loading…
Reference in New Issue