[SWEA] 5174 subtree

Heejin Ryu·2021년 4월 7일
0

Algorithm

목록 보기
9/14

문제의 저작권은 SW Expert Academy에 있습니다.

풀이
트리를 받을 땐 chs라는 이중포문에 n1이 부모일 때 n2값을 left, right값으로 받아서 넣었다.
트리를 preorder하면서 지정된 루트 아래에 있는 값들을 모두 순회했다.

def preorder(n):
    global count
    if n > 0:
        count += 1
        preorder(chs[0][n])
        preorder(chs[1][n])


T = int(input())
for tc in range(1, T+1):
    count = 0
    result = 0
    E, N = map(int, input().split())
    values = list(map(int, input().split()))
    chs = [[0] * (E + 2) for _ in range(2)]
    for i in range(E):
        n1, n2 = values[i*2], values[i*2+1]
        # left
        if chs[0][n1] == 0:
            chs[0][n1] = n2
        # right
        else:
            chs[1][n1] = n2
    preorder(N)
    print(("#{} {}".format(tc, count)))
    ```
profile
Chocolate lover🍫 & Junior Android developer🤖

0개의 댓글

관련 채용 정보