프로그래밍 언어 활용난도 중상
17번 · 주관식 · 5점
다음 Python 프로그램의 실행 결과를 쓰시오.
class Node:
def __init__(self, value):
self.value = value
self.children = []
def build(values):
nodes = [Node(value) for value in values]
for index in range(1, len(nodes)):
nodes[(index - 1) // 2].children.append(nodes[index])
return nodes[0]
def odd_level_sum(node, level=0):
own = node.value if level % 2 == 1 else 0
return own + sum(odd_level_sum(child, level + 1)
for child in node.children)
root = build([3, 5, 8, 12, 15, 18, 21])
print(odd_level_sum(root))