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