흙금이네 블로그

[BOJ] 6597 - 트리 복구 (Python, JavaScript) 본문

알고리즘

[BOJ] 6597 - 트리 복구 (Python, JavaScript)

흙금 2023. 5. 24. 11:21

 

 

아이디어

 

분할 정복으로 트리를 후위 순회한 결과를 출력한다.

 

 

풀이 #1 (Python)

 

import sys

def solution():

    def postorder(order):
        if not order:
            return
        nonlocal idx, res
        temp = preorder[idx]
        left, right = order.split(preorder[idx])
        idx += 1
        postorder(left)
        postorder(right)
        res += temp

    cases = sys.stdin.readlines()
    for case in cases:
        preorder, inorder = case.split()
        idx = 0
        res = ''
        postorder(inorder)
        print(res)

solution()

 

 

 

풀이 #2 (JavaScript)

 

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');

function solution() {
    
    function postorder(order) {
        if (order === '') return;
        const temp = preorder[idx];
        const [left, right] = order.split(preorder[idx]);
        idx += 1;
        postorder(left);
        postorder(right);
        res += temp;
    }
    
    for (let i=0; i<input.length-1; i++) {
        var [preorder, inorder] = input[i].split(' ');
        var idx = 0;
        var res = '';
        postorder(inorder);
        console.log(res);
    }
}

solution();

 

Comments