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

2026. 3. 8. 16:20·알고리즘 & 자료구조/문제 풀이

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

 

'알고리즘 & 자료구조 > 문제 풀이' 카테고리의 다른 글

[프로그래머스 알고리즘 고득점 Kit][그래프][Java] 순위  (0) 2026.03.29
[프로그래머스 알고리즘 고득점 Kit][힙(Heap)][Java] 더 맵게  (0) 2026.03.29
[프로그래머스 알고리즘 고득점 Kit][그래프][Java] 가장 먼 노드  (0) 2026.03.07
[프로그래머스 알고리즘 고득점 Kit][완전탐색][Java] 최소직사각형  (0) 2026.03.03
[프로그래머스 알고리즘 고득점 Kit][해시][Java] 베스트앨범  (0) 2026.03.02
'알고리즘 & 자료구조/문제 풀이' 카테고리의 다른 글
  • [프로그래머스 알고리즘 고득점 Kit][그래프][Java] 순위
  • [프로그래머스 알고리즘 고득점 Kit][힙(Heap)][Java] 더 맵게
  • [프로그래머스 알고리즘 고득점 Kit][그래프][Java] 가장 먼 노드
  • [프로그래머스 알고리즘 고득점 Kit][완전탐색][Java] 최소직사각형
수수다
수수다
우하하
  • 수수다
    그냥살자
    수수다
  • 전체
    오늘
    어제
    • 분류 전체보기 (37) N
      • 프로젝트 (1)
      • 알고리즘 & 자료구조 (18) N
        • 내용 정리 (2)
        • 문제 풀이 (16) N
      • 데이터베이스 (14) N
        • 내용 정리 (1) N
        • 문제 풀이 (13) N
      • CS (2)
      • 기타 (2)
  • 블로그 메뉴

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

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

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바