Advertisement
rolfvanoven

troglodiet dag 12B

Dec 15th, 2021
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.39 KB | None | 0 0
  1. # bestand lezen en in stukjes hakken:
  2. bestand = open('input.txt', 'r')
  3. alles = bestand.readlines()
  4.  
  5. for x in range(len(alles)):
  6.   alles[x] = alles[x].replace('\n', '')
  7. for x in range(len(alles)):
  8.   alles[x] = alles[x].split('-')
  9. for x in range(len(alles)):
  10.   alles[x].sort()  
  11.  
  12. # lijstje van de grotten maken, formaat is eerst de grot en dan waar je vanaf daar heen kunt:
  13. grotten = []
  14. for pad in range(len(alles)):
  15.   for grot in range(2):
  16.     if alles[pad][grot] not in grotten:
  17.       grotten.append(alles[pad][grot])
  18.  
  19. for x in range(len(grotten)):
  20.   grotten[x] = [grotten[x], []]
  21.  
  22. for pad in range(len(alles)):
  23.   for y in range(len(grotten)):
  24.     if alles[pad][0] == grotten[y][0]:
  25.       if alles[pad][1] not in grotten[y][1]:
  26.         grotten[y][1].append(alles[pad][1])
  27.     if alles[pad][1] == grotten[y][0]:
  28.       if alles[pad][0] not in grotten[y][1]:
  29.         grotten[y][1].append(alles[pad][0])
  30.  
  31. # routekaart uit destilleren:
  32. kaart = [[] for x in range(len(grotten))]
  33. for x in range(len(grotten)):
  34.   for y in range(len(grotten[x][1])):
  35.     for z in range(len(grotten)):
  36.       if grotten[x][1][y] == grotten[z][0]:
  37.         kaart[x].append(z)
  38.  
  39. # kleine grotjes, begin en eind zoeken:
  40. grotjes = []
  41. for x in range(len(grotten)):
  42.   if grotten[x][0].islower():
  43.     grotjes.append(x)
  44. for x in range(len(grotten)):
  45.   if grotten[x][0] == 'start':
  46.     begin = x
  47. for x in range(len(grotten)):
  48.   if grotten[x][0] == 'end':
  49.     einde = x
  50.  
  51. nogdoen = [[begin]]
  52.  
  53. # daar gaan we dan:
  54.  
  55. legaal = 0
  56. while len(nogdoen) > 0:
  57.   route = nogdoen[0]
  58.   waarnu = route[-1]
  59.   grotjesgehad = [0 for x in range(len(kaart))]
  60.   for x in range(len(route)):
  61.     if route[x] in grotjes:
  62.       grotjesgehad[route[x]] += 1
  63.   for x in range(len(kaart[waarnu])):
  64.     magdat = True
  65.     dubbelgehad = False
  66.     for y in range(len(grotjesgehad)):
  67.       if grotjesgehad[y] > 1:
  68.         dubbelgehad = True
  69.     if kaart[waarnu][x] == begin:
  70.       magdat = False
  71.     if grotjesgehad[kaart[waarnu][x]] > 1:
  72.       magdat = False
  73.     if dubbelgehad == True and grotjesgehad[kaart[waarnu][x]] == 1:
  74.       magdat = False
  75.     if magdat:
  76.       toevoegen = []
  77.       for y in range(len(route)):
  78.         toevoegen.append(route[y])
  79.       toevoegen.append(kaart[waarnu][x])
  80.       if toevoegen[-1] != einde:
  81.         nogdoen.append(toevoegen)
  82.       else:
  83.         legaal += 1
  84.      
  85.   nogdoen.pop(0)
  86.  
  87. print(legaal)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement