Tree 構造の走査及び値の算出
表題の件について質問です。
HackerRankというサイトでプログラミングの問題を解いています。
データ構造は以下のコードで作りその後ノードの値を足しあわせていこうと思ったのですが、
どのように合計値を計算すればよいのか方針が分かりません。
ヒントやアドバイスをいただけないでしょうか。
※もし、データ構造に問題がありましたらそれも合わせてご教示いただけると幸いです。
よろしくお願いします。
[問題]
https://www.hackerrank.com/challenges/cut-the-tree
[コード]
class Tree:
"""
Original Tree Structure which is representing the Input
"""
def __init__(self, value, position):
"""
Initialize class instance
:param value: value of the node
"""
self.value = value
self.position = position
self.connection = []
def set_connection(self, connection):
"""
set connection with other instance
:param connection:
"""
self.connection.append(connection)
def set_value(self, value):
"""
set value of the instance
:param value: value
"""
self.connection = value
def get_value(self, position):
return self.value
def get_sum(self):
"""
Running Tree and sum up the value of node.
:param frm: which node coming from
:param to: which node goes next
:return: sum value
"""
return self.value
def get_position(self):
return self
if __name__ == "__main__":
# ----- Initializing ------
N = int(input())
values = input().split()
T = []
a = 0
for value in values:
T.append(Tree(int(value), a))
a += 1
input_list = []
for i in range(N-1):
in_con = input().split()
T[int(in_con[0])-1].set_connection(int(in_con[1])-1)
T[int(in_con[1])-1].set_connection(int(in_con[0])-1)
input_list.append(in_con)
# ----- Start searching -----
〜ここから値の走査を始める〜