Algorithm/Baekjoon

[Algorithm/Baekjoon] ๋‚˜๋ฌด ํƒˆ์ถœ - 15900 (S1/JAVA)

dpdms2148 2024. 12. 30. 21:14
728x90

๐Ÿ“‘๋ฌธ์ œ๋งํฌ

https://www.acmicpc.net/problem/15900

๐Ÿ’ป์ฝ”๋“œ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class Main {
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static StringTokenizer st;
    static int N, answer;
    static ArrayList<Integer>[] board;

    public static void main(String[] args) throws IOException {

        N = Integer.parseInt(br.readLine());
        board = new ArrayList[N + 1];

        for (int i = 0; i <= N; i++) {
            board[i] = new ArrayList<>();
        }
        for (int i = 0; i < N - 1; i++) {
            st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            board[a].add(b);
            board[b].add(a);
        }
        startGame(1, -1, 0);
        //์ด ์ด๋™ ๊ฑฐ๋ฆฌ๊ฐ€ ํ™€์ˆ˜ -> ์„ฑ์›์ด๊ฐ€ ์Šน๋ฆฌ
        System.out.print(answer % 2 == 0 ? "No" : "Yes");
    }

    private static void startGame(int cur, int parent, int sum) {
        if (board[cur].size() == 1 && board[cur].get(0) == parent) {
            // ์—ฐ๊ฒฐ๋œ ๊ฐ„์„ ์ด ํ•˜๋‚˜๊ณ , ๊ทธ๊ฒŒ ๋ถ€๋ชจ์ผ ๊ฒฝ์šฐ -> ๋ฆฌํ”„ ๋…ธ๋“œ
            // ์ด ์ด๋™ ๊ฑฐ๋ฆฌ ์—…๋ฐ์ดํŠธ
            answer += sum;
            return;
        }
        for (int next : board[cur]) {
            if (next == parent) continue;
            startGame(next, cur, sum + 1);
        }
    }

}

 

 

728x90