KimMinJun
Coding Note
KimMinJun
전체 방문자
오늘
어제
  • 분류 전체보기 (511) N
    • Project (1)
      • blog (1)
    • CS (1)
    • Web (29)
      • Vanilla JS (13)
      • TS (2)
      • React (7)
      • Next.js (5)
      • ETC (1)
    • Docker (14)
    • Git (5)
    • ALGORITHM (11)
      • 정렬 (6)
      • 최단경로 (1)
      • 자료구조 (1)
      • 슬라이딩 윈도우 (1)
      • etc (2)
    • PS (435) N
      • 백준 (187)
      • Programmers (108) N
      • CodeUp (21)
      • STL (3)
      • 제코베 JS 100제 (50)
      • SWEA (0)
      • LeetCode (65)
    • IT (1)
    • React 공식문서 (번역, 공부) (11)
      • Quick Start (2)
      • Installation (0)
      • Describing the UI (9)
      • Adding Interactivity (0)
      • Managing State (0)
      • Escape Hatches (0)
    • Next.js 공식문서 (번역, 공부) (3)
      • Getting Started (2)
      • Building Your Application (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 관리

공지사항

인기 글

태그

  • 다이나믹 프로그래밍
  • 백준
  • Level 1
  • js
  • C
  • codeup
  • 문자열
  • Level 2
  • programmers
  • 정렬
  • Level1
  • LeetCode
  • 수학
  • string
  • tree
  • C++
  • 그래프
  • Level 0
  • 제코베 JS 100제
  • recursion

최근 댓글

최근 글

hELLO · Designed By 정상우.
KimMinJun

Coding Note

PS/Programmers

Programmers / Level 3 / 네트워크 / JS

2025. 9. 2. 22:59

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

 

프로그래머스

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

programmers.co.kr

 

풀이

function solution(n, computers) {
  const visited = Array.from({ length: n }, () => false);
  let network = 0;

  for (let i = 0; i < n; i++) {
    // 아직 방문하지 않았다면 dfs로 네트워크를 탐색한다.
    if (!visited[i]) {
      dfs(i);
      network++;
    }
  }

  function dfs(cur) {
    for (let i = 0; i < n; i++) {
      if (visited[i]) {
        continue;
      }
      // 이어져 있지 않다면 건너뛴다.
      if (computers[cur][i] === 0) {
        continue;
      }

      visited[i] = true;
      dfs(i);
    }
  }

  return network;
}

 

문제는 간단히 말하면 이어져있는 그룹이 몇개인지 세는 문제이다.

Level3 이라기엔 상당히 쉬운 문제이다.

 

dfs로 현재의 컴퓨터와 이어져 있는 컴퓨터는 모두 방문처리를 한다.

따라서 dfs를 마치면 하나의 네트워크가 형성되게 된다.

 

아직 네트워크가 형성되지 않은 컴퓨터는 방문처리가 되어있지 않았을 것이기 때문에,

방문처리 되어있지 않은 컴퓨터에서 다시 dfs를 이용해 네트워크를 형성해주면 된다.

저작자표시 (새창열림)

'PS > Programmers' 카테고리의 다른 글

Programmers / Level 3 / 섬 연결하기 / JS  (0) 2025.09.01
Programmers / Level 3 / 표 편집 / JS  (3) 2025.08.19
Programmers / 과제테스트 / [실무 역량 과제] 게시물 레이아웃 재구성하기 (FE)  (2) 2025.05.30
Programmers / Level 2 / 우박수열 정적분 / JS  (0) 2025.04.02
    'PS/Programmers' 카테고리의 다른 글
    • Programmers / Level 3 / 섬 연결하기 / JS
    • Programmers / Level 3 / 표 편집 / JS
    • Programmers / 과제테스트 / [실무 역량 과제] 게시물 레이아웃 재구성하기 (FE)
    • Programmers / Level 2 / 우박수열 정적분 / JS
    KimMinJun
    KimMinJun

    티스토리툴바