[프로그래머스|JAVA] 네트워크 | ↕️ DFS (깊이 우선 탐색) | 재귀적 방식

2025. 8. 24. 18:35·💻코딩/💡Programmers
728x90
반응형

[문제 링크]

 

프로그래머스

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

programmers.co.kr

[문제]

 


 

📍 [코드]

class Solution {
    public int solution(int n, int[][] computers) {
        boolean[] visited = new boolean[n];  
        int cnt = 0; 
        
        for (int i = 0; i < n; i++) { 
            if (!visited[i]) {  
                dfs(computers, visited, i);  // DFS로 연결된 컴퓨터 모두 방문
                cnt++;
            }
        }
        
        return cnt;
    }
    
    private void dfs(int[][] computers, boolean[] visited, int node) {
        visited[node] = true; // 현재 노드 방문 처리
        
        for (int i = 0; i < computers.length; i++) {   // 모든 노드와 연결 여부 확인
            if (computers[node][i] == 1 && !visited[i]) {  // 연결되어 있고 아직 방문하지 않았다면
                dfs(computers, visited, i); // 재귀적으로 방문
            }
        }
    }
}

 

💡 접근법

  • 각 컴퓨터를 하나씩 돌며
  • visited를 true로 설정하여 방문 처리를 하고,
  • 연결된 노드가 있는지 확인
    • 이때, 방문하지 않았다면 재귀 호출을 통해 방문하며 연결된 노드 확인
  • 호출이 끝난 후 카운트하여 반환

✅ DFS 활용

 

 


 

💬 마무리

level 3이라 그런건지,, DFS 문제라 그런건지 상당히 어렵게 느껴졌다ㅠㅠ
레벨도 레벨이지만, 너비 / 깊이 우선 탐색은 내가 약한 부분인 것 같다.
코딩 테스트에서 잘나오는 편인 것 같은데 많은 문제를 풀어보며 적응 해야겠다 !

 

 

 

 

728x90
반응형

'💻코딩 > 💡Programmers' 카테고리의 다른 글

[프로그래머스|JAVA] 게임 맵 최단거리 | ↔️ BFS 활용 | Queue 활용  (5) 2025.08.25
[프로그래머스|JAVA] 타겟 넘버 | ↕️ DFS 활용 | 간결 코드  (4) 2025.08.24
[프로그래머스|JAVA] 제일 작은 수 제거하기 | 3️⃣가지 풀이법 | stream 및 예외 먼저 처리 등 💬  (0) 2025.08.24
[프로그래머스|JAVA] 문자열 내 마음대로 정렬하기 | Comparator 사용 ⭕️ | @Override 활용 | 풀이법 2️⃣가지 | 스트림 ⭕️❌  (0) 2025.08.24
[프로그래머스|JAVA] 스킬 트리 🌲 | 트리 순회 방식 | 선형 탐색  (0) 2025.08.24
'💻코딩/💡Programmers' 카테고리의 다른 글
  • [프로그래머스|JAVA] 게임 맵 최단거리 | ↔️ BFS 활용 | Queue 활용
  • [프로그래머스|JAVA] 타겟 넘버 | ↕️ DFS 활용 | 간결 코드
  • [프로그래머스|JAVA] 제일 작은 수 제거하기 | 3️⃣가지 풀이법 | stream 및 예외 먼저 처리 등 💬
  • [프로그래머스|JAVA] 문자열 내 마음대로 정렬하기 | Comparator 사용 ⭕️ | @Override 활용 | 풀이법 2️⃣가지 | 스트림 ⭕️❌
망꼬누나
망꼬누나
공부한 내용을 정리하는 공간입니다.
  • 망꼬누나
    망꼬누나의 개발 공부
    망꼬누나
  • 전체
    오늘
    어제
    • 분류 전체보기 (165)
      • ℹ️ 정보 및 실습 (19)
        • ☑️ Git & GitHub (8)
        • ☑️ 프로젝트 (6)
        • ☑️ 회고 및 후기 (5)
      • 🛠 CS (1)
      • 💻코딩 (88)
        • 💡Baekjoon (17)
        • 💡Programmers (71)
      • ✏️공부 (48)
        • 💡OS (1)
        • 💡Network (6)
        • 💡SpringBoot (9)
        • 💡JAVA (21)
        • 💡SQL (1)
        • 💡DB (2)
        • ☁️ Cloud (4)
        • 💡알고리즘 (4)
      • 📌 자격증 (6)
        • 📝정보처리기사 (3)
        • 📝SQLD (3)
  • 블로그 메뉴

    • 홈
    • github
  • 나의 GitHub Contribution 그래프
    Loading data ...
  • 인기 글

  • 태그

    자바
    S3
    코딩테스트
    baekjoon
    프로그래머스 #JAVA
    map
    Java
    데브코스
    알고리즘
    GIT
    프로그래머스
    github
    트랜잭션
    AWS
    네트워크
    자료구조
    백엔드
    Set
    Stream
    동시성제어
  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.5
망꼬누나
[프로그래머스|JAVA] 네트워크 | ↕️ DFS (깊이 우선 탐색) | 재귀적 방식
상단으로

티스토리툴바