๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ’ป Computer Science/- Data Structure, Algorithm

[์•Œ๊ณ ๋ฆฌ์ฆ˜ PS] ๋ฐฑ์ค€ 5567๋ฒˆ ๊ฒฐํ˜ผ์‹ ์ž๋ฐ” ๋ฌธ์ œํ’€์ด

by Wonit 2021. 8. 2.

๋ฌธ์ œ

ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ๋ฐฑ์ค€์˜ 5567๋ฒˆ ๊ฒฐํ˜ผ์‹ ์˜ ์ ‘๊ทผ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ ๊ธ€ ์ž…๋‹ˆ๋‹ค.
์ •๋‹ต ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๋ ค๋ฉด solve url ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋จผ์ € ์ƒ๊ฐํ•ด๋ณด์ž.

 

๋ฌธ์ œ ์ ‘๊ทผ

 

์ด ๋ฌธ์ œ๋Š” ์‹œ์ž‘ ๋…ธ๋“œ๋ถ€ํ„ฐ ์–ผ๋งˆ๋‚˜ ๋–จ์–ด์ ธ ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๊ณ  ๋–จ์–ด์ง„ ๊ฑฐ๋ฆฌ๊ฐ€ 2 ์ด์ƒ 3 ์ดํ•˜๋ฉด count ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

ํ•ด๊ฒฐ๋ฒ•

 

์‹œ์ž‘ ๋…ธ๋“œ๋ถ€ํ„ฐ ๋‹ค๋ฅธ ๋ชจ๋“  ๋…ธ๋“œ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด BFS ๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋”ฐ.

 

์ •๋‹ต ์ฝ”๋“œ

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int n = Integer.parseInt(br.readLine());
        int m = Integer.parseInt(br.readLine());

        List<List<Integer>> graph = new ArrayList<>();

        for (int i = 0; i <= n; i++) {
            graph.add(new ArrayList<>());
        }

        for (int i = 0; i < m; i++) {
            String[] s = br.readLine().split(" ");
            int from = Integer.parseInt(s[0]);
            int to = Integer.parseInt(s[1]);

            graph.get(from).add(to);
            graph.get(to).add(from);
        }

        int[] depth = new int[n + 1];

        Queue<Integer> queue = new LinkedList<>();
        queue.add(1);
        depth[1] = 1;

        while(!queue.isEmpty()) {
            int front = queue.remove();

            for(int value : graph.get(front)) {
                if(depth[value] == 0) {
                    depth[value] = depth[front] + 1;
                    queue.add(value);
                }
            }
        }

        int count = 0;

        for (int i = 2; i < depth.length; i++) {
            if(depth[i] == 2 || depth[i] == 3) {
                count++;
            }
        }

        bw.write(String.valueOf(count));

        bw.flush();
        bw.close();
    }
}

์ •๋‹ต ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๋ ค๋ฉด solve url ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€