[프로그래머스 - BFS/DFS] 네트워크

2020. 1. 28. 00:27·Algorithm

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/43162

 
문제 설명

네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다.

컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오.

 


제한사항

  • 컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다.
  • 각 컴퓨터는 0부터 n-1인 정수로 표현합니다.
  • i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[i][j]를 1로 표현합니다.
  • computer[i][i]는 항상 1입니다.

풀이 순서
 

  1.  현재 노드 기준으로, 현재 노드와 연결된 노드들까지 모두 방문하고 방문배열(var:link)에 방문 체크한다. 이때, link가 1개 생긴 것이므로 link 개수(var: answer)에 +1 한다.
import java.util.*;
class Solution {
    static boolean link[][];
    public int solution(int n, int[][] computers) {
        int answer = 0;
        link = new boolean[n][n];
        
        for(int i=0; i< computers.length; i++){
            if(!link[i][i]){
                answer += 1;
                dfs(computers, i, n);
            }
        }
        return answer;
    }
    
    static void dfs(int[][] computers, int idx, int n){
    
        for(int i=0; i<n; i++){
        
            if(computers[idx][i] == 1 && !link[idx][i]){
                link[idx][i] = link[i][idx] = true;
                dfs(computers, i, n);
            }
            
        }
    }
}

 

 

'Algorithm' 카테고리의 다른 글

[boj17136-완전탐색] 색종이 붙이기 (x)  (0) 2020.02.05
[프로그래머스 - 힙(Heap)] 디스크 컨트롤러  (0) 2020.01.28
[프로그래머스 - 정렬] H-Index  (0) 2020.01.27
[프로그래머스 - 정렬] 가장 큰수  (0) 2020.01.27
[프로그래머스 - 스택/큐] 다리를지나는트럭  (0) 2020.01.27
'Algorithm' 카테고리의 다른 글
  • [boj17136-완전탐색] 색종이 붙이기 (x)
  • [프로그래머스 - 힙(Heap)] 디스크 컨트롤러
  • [프로그래머스 - 정렬] H-Index
  • [프로그래머스 - 정렬] 가장 큰수
hj_.
hj_.
  • hj_.
    기술 블로그
    hj_.
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Algorithm
      • Side Project
        • PCA 자격증 준비
        • Flutter
        • Vue
      • Flutter
      • Kubernetes
      • 온라인 비즈니스
  • 블로그 메뉴

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

    • Linkedin
    • Github
  • 공지사항

  • 인기 글

  • 태그

    디스크 컨트롤러
    가벼운 테마
    MySQL환경 구축
    Deploy and Manage Cloud Environments with Google Cloud
    가장 큰수
    소수찾기
    Challenge Lab 2
    boj17136
    PCA 자격증
    다리를 지나는 트럭
    완전탐색
    pagespeedinsight
    hosting.kr
    서버 환경 구축
    Range query)
    UpdraftPlus
    GCP
    java
    microk8s
    elasticsearch
    Wordfence
    워드프레스세팅
    프로그래머스
    베스트앨범
    Full text query
    VM INSTANCE
    색종이붙이기
    페이지 속도
    GCP MySQL
    H-index
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
hj_.
[프로그래머스 - BFS/DFS] 네트워크
상단으로

티스토리툴바