Ik ben net een weekend weggeweest en aan 6 begonnen maar ik kom er niet uit.
Mijn bevindingen:
[spoiler
Heb net ontdekt dat je meerdere roots hebt omdat je losse objecten A hebt die om B orbitten...
[/]
Dat is gefixed in mijn code maar is niet de oplossing.
Dit is nu mijn code:
spoiler:[code=python]
class Tree:
def __init__(self, input):
input, self.nodes = input, dict()
for line in input:
self.add_relation(line)
self.roots = self.find_roots()
for root in self.roots:
self.add_orbits_to_node(root, 0)
def add_relation(self, line):
parent, child = line.split(')')[0], line.split(')')[1]
if parent not in self.nodes:
self.nodes[parent] = [set(), 1]
self.nodes[parent][0].add(child)
if child not in self.nodes:
self.nodes[child] = [set(), 1]
def find_roots(self):
possible_root_nodes = list(self.nodes.keys())
for n in self.nodes:
if n[0] in possible_root_nodes:
possible_root_nodes.remove(n[0])
return possible_root_nodes
def add_orbits_to_node(self, name, orbits):
self.nodes[name][1] = orbits
for child in self.nodes[name][0]:
self.add_orbits_to_node(child, orbits + 1)
return
Wat dan weer wordt gerund doot zoiets als dit:
(get_input levert een list van strings)
input = get_input("input")
t = Tree(input)
total_orbits=0
for node_name in t.nodes.keys():
total_orbits+=t.nodes[node_name][1]
print("6a: {}".format(total_orbits))
[/]
Maar dit werkt dus niet.
Kan iemand me een hint geven?
[
Voor 9% gewijzigd door
Boudewijn op 09-12-2019 20:44
]