sggnology
하늘속에서IT
sggnology
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • Algorithm (31)
      • Programmers (27)
      • Baekjoon (4)
    • WIKI (4)
      • VirtualBox (1)
      • Power Toys (1)
    • NodeJS (4)
      • nvm (1)
      • React (1)
      • Vue (1)
    • Dev Language (3)
      • Java (2)
      • Kotlin (1)
    • Spring Boot (17)
      • Gradle (1)
      • JPA (3)
    • DB (4)
      • MariaDB (3)
      • Redis (0)
    • Android (6)
      • Debug (3)
    • Nginx (3)
      • Debug (1)
    • Intellij (0)
    • Network (1)
    • Git (2)
      • GitHub (2)
    • Chrome Extension (0)
    • ETC (5)
      • Monitoring (2)
    • Linux (1)
      • WSL (1)
    • Visual Studio (1)
    • Side Project (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • spring boot
  • mariadb
  • 연습문제
  • 안드로이드 스튜디오
  • JPA
  • 프로그래머스
  • DB
  • Android Studio
  • 알고리즘
  • 오블완
  • 백준
  • 레벨3
  • kotlin
  • 레벨2
  • nginx
  • 고득점 Kit
  • docker
  • 고득점KIT
  • java
  • 티스토리챌린지

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
sggnology

하늘속에서IT

Algorithm/Baekjoon

[Baekjoon] 2606번 바이러스(feat. Java)

2024. 11. 15. 16:35
728x90

접근

  • 각 컴퓨터를 접점으로 취급한채로 간선을 이중배열로 연결 관계 표시
  • 방문여부와 접점간에 연결여부를 통해 접근가능한지 확인

 


 

해결

import java.io.*;
import java.util.*;

public class Main {

    static int[][] arr1;
    static int[][] visited1;
    static HashSet<Integer> set;

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

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

        arr1 = new int[N+1][N+1];
        visited1 = new int[N+1][N+1];
        set = new HashSet<>();

        for(int i=0;i<M;i++){
            StringTokenizer st = new StringTokenizer(br.readLine());

            int X = Integer.parseInt(st.nextToken());
            int Y = Integer.parseInt(st.nextToken());

            arr1[X][Y] = arr1[Y][X] = 1;
        }

        dfs(1, N);

        System.out.println(set.size() - 1);
    }

    public static void dfs(int V, int N){
        int[] arr = arr1[V];

        set.add(V);

        for(int i=1;i<=N;i++){
            if(i == V)
                continue;

            if(arr[i] == 1 && visited1[V][i] == 0){
                visited1[V][i] = visited1[i][V] = 1;
                dfs(i, N);
            }
        }
    }
}

 

728x90

'Algorithm > Baekjoon' 카테고리의 다른 글

[Baekjoon] 2667번 단지번호붙이기(feat. Java)  (1) 2024.11.15
[Baekjoon] 1260번 DFS와 BFS(feat. Java)  (0) 2024.11.14
[Baekjoon] 2178번 미로 탐색(feat. Java)  (0) 2024.11.06
    'Algorithm/Baekjoon' 카테고리의 다른 글
    • [Baekjoon] 2667번 단지번호붙이기(feat. Java)
    • [Baekjoon] 1260번 DFS와 BFS(feat. Java)
    • [Baekjoon] 2178번 미로 탐색(feat. Java)
    sggnology
    sggnology
    하늘은 파란색이니까 내 삶도 파란색이길 ㅎㅎ

    티스토리툴바