[백준/Java] 2606 - 바이러스

2025. 9. 2. 11:28·코딩테스트/백준

http://acmicpc.net/problem/2606

문제


풀이

dfs로 구현 가능한 문제이다

연결되어 있는 컴퓨터를 표시하기 위해 com[][] 배열을 만들고 입력값에 맞게 com[x][y], com[y][x]를 1로 초기화한다

dfs를 돌면서 방문한 노드는 true로 해주고 감염된 컴퓨터 수를 +1 해준다

연결된 컴퓨터만 체크하고 방문하지 않은 노드일 때만 dfs 함수를 적용한다

코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;

public class Main {

    static int[][] com;
    static boolean[] visited;
    static int cnt = 0;

    static int N;
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        StringBuilder sb = new StringBuilder();

        N = Integer.parseInt(br.readLine());
        int M = Integer.parseInt(br.readLine());

        com = new int[N + 1][N + 1];
        visited = new boolean[N + 1];

        for (int i = 0; i < M; i++) {
            st = new StringTokenizer(br.readLine());
            int x = Integer.parseInt(st.nextToken());
            int y = Integer.parseInt(st.nextToken());
            com[x][y] = com[y][x] = 1;
        }

        dfs(1);

        System.out.println(cnt - 1);
    }

    static void dfs(int start) {
        visited[start] = true;
        cnt++;

        for (int i = 0; i <= N; i++) {
            if (com[start][i] == 1 && !visited[i]) {
                dfs(i);
            }
        }
    }
}

결과

'코딩테스트/백준' 카테고리의 다른 글
  • [백준/Java] 11659 - 구간 합 구하기 4
  • [백준/Java] 9416 - 파도반 수열
  • [백준/Java] 2579 - 계단 오르기
  • [백준/Java] 1003 - 피보나치 함수
KDH.dev
KDH.dev
  • KDH.dev
    CodingHard
    KDH.dev
  • 전체
    오늘
    어제
    • 전체글 (82)
      • 코딩테스트 (74)
        • 프로그래머스 (13)
        • 백준 (61)
      • CS (4)
        • 네트워크 (4)
      • Spring (1)
      • Java (3)
        • 자료구조 (3)
        • 알고리즘 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    16935
    부트캠프후기
    14940
    11660
    네트워크
    CS
    멀티캠퍼스it부트캠프
    30804
    21736
    5525
    자바
    자료구조
    프로그래머스 Lv.0
    13913
    백준
    코딩테스트
    18111
    프로그래머스
    [LG유플러스] 유레카 백엔드 개발자
    17626
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
KDH.dev
[백준/Java] 2606 - 바이러스
상단으로

티스토리툴바