[프로그래머스 알고리즘 고득점 Kit][깊이/너비 우선 탐색(DFS/BFS)][Java] 네트워크

2026. 3. 8. 16:20·알고리즘 & 자료구조/BFS

https://school.programmers.co.kr/learn/courses/30/lessons/43162

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

정답 코드

 

그래프를 만들어서 각 숫자마다 bfs로 연결된 부분을 방문체크를 하고 
0 ~ n-1 에서 bfs 메서드가 발동된 부분을 세어주면된다.

나는 이 방법보단 유니온파인드(분리집합)이 먼저 생각이 들었기 때문에 

각 연결점을 union 해주고
부모노드를 저장하는 p 배열의 루트의 갯수(음수로 랭크를 관리)가 네트워크의 갯수가 된다.

import java.util.*;

class Solution {
    
    int[] p;
    
    public int solution(int n, int[][] computers) {
        p = new int[n]; Arrays.fill(p, -1);
        for(int i=0; i<n; i++) {
            for(int j=0; j<n; j++){
                if(i == j) continue;
                
                if(computers[i][j] == 1) {
                    union(i, j);
                }
            }
        }
        int ans = 0;
        for(int i=0; i<n; i++) {
            if(p[i] < 0) {
                ans++;
            }
        }
        return ans;
    }
    public int find(int x) {
        if(p[x] < 0) return x;
        
        return p[x] = find(p[x]);
    }
    public void union(int x, int y) {
        int u = find(x);
        int v = find(y);
        if(u == v) return;
        
        if(p[u] > p[v]) {
            int t = u;
            u = v;
            v = t;
        }
        
        if(p[u] == p[v]) p[u]--;
        
        p[v] = u;
    }
}

유니온 파인드 이론

 

유니온파인드 | 분리집합 | 디스조인트셋

유니온파인드 코드 예시 [프로그래머스 알고리즘 고득점 Kit][깊이/너비 우선 탐색(DFS/BFS)][Java] 네트워크https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스SW개발자를 위한 평가, 교육

mirrorpi.tistory.com

 

'알고리즘 & 자료구조 > BFS' 카테고리의 다른 글

[프로그래머스 알고리즘 고득점 Kit][깊이/너비 우선 탐색(DFS/BFS)][Java] 게임 맵 최단거리  (0) 2026.02.16
'알고리즘 & 자료구조/BFS' 카테고리의 다른 글
  • [프로그래머스 알고리즘 고득점 Kit][깊이/너비 우선 탐색(DFS/BFS)][Java] 게임 맵 최단거리
수수다
수수다
우하하
  • 수수다
    그냥살자
    수수다
  • 전체
    오늘
    어제
    • 분류 전체보기 (20) N
      • 프로젝트 (1)
      • 알고리즘 & 자료구조 (17) N
        • 분리 집합 (1)
        • 정렬 (1)
        • 유클리드 호제법 (1)
        • 이분 탐색 (2) N
        • 해시 (5)
        • 그래프 (2)
        • 스택 (1)
        • 큐 (0)
        • 완전 탐색 (1)
        • DFS (0)
        • BFS (2)
        • 힙 (1)
      • 데이터베이스 (0)
      • CS (0)
      • 기타 (2)
  • 블로그 메뉴

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

    • 네이버 블로그
  • 공지사항

  • 인기 글

  • 태그

    코테
    분리집합
    bfs
    유클리드호제법
    그래프
    매개변수탐색
    프로그래머스 알고리즘 고득점 kit
    싸피
    바이브코딩
    깊이/너비 우선 탐색(DFS/BFS)
    SSAFY
    유니온파인드
    비전공자
    완전탐색
    코딩테스트
    이분탐색
    바킹독
    백엔드
    알고리즘
    Java
    디스조인트셋
    해시
    평균회귀
    union-find
    귀멸의칼날
    코팅테스트
    삼성청년SW·AI아카데미
    프로그래머스
    DisjointSet
    고가용성
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
수수다
[프로그래머스 알고리즘 고득점 Kit][깊이/너비 우선 탐색(DFS/BFS)][Java] 네트워크
상단으로

티스토리툴바