본문 바로가기

백준

BOJ_1991 트리 순회

백준 링크 : https://www.acmicpc.net/problem/1991

필요 알고리즘 개념 DFS, inorder, preorder, postorder

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main {
    static final int PRE = 0, IN = 1, POST = 2, LEFT = 0, RIGHT = 1;
    static Map<String, String[]> map = new HashMap<>();

    static void traverse(String id, int order) {
        if (id.equals(".")) return;
        String[] child = map.get(id);
        if (order == PRE) System.out.print(id);
        traverse(child[LEFT], order);
        if (order == IN) System.out.print(id);
        traverse(child[RIGHT], order);
        if (order == POST) System.out.print(id);
    }

    public static void main(String[] args) {
        try (Scanner scanner = new Scanner(System.in)) {
            int N = scanner.nextInt();
            for (int i = 0; i < N; ++i) {
                String id = scanner.next();
                String left = scanner.next();
                String right = scanner.next();
                map.put(id, new String[] { left, right });
            }
            traverse("A", PRE); System.out.println();
            traverse("A", IN);  System.out.println();
            traverse("A", POST); System.out.println();
        }
    }
}

'백준' 카테고리의 다른 글

BOJ[java]_5397 키로거  (0) 2023.02.26
BOJ_2667 단지번호붙이기  (0) 2023.02.19
BOJ_1181 단어 정렬  (0) 2023.02.19
BOJ_17484 진우의 달 여행  (0) 2023.02.12
BOJ_22233 가희와 키워드  (0) 2023.02.12