알고리즘/문제풀이
[프로그래머스] 43162 네트워크 - JAVA - Lv3
LIRI
2025. 4. 26. 20:08
[프로그래머스] 43162 네트워크 - JAVA - Lv3
문제
https://school.programmers.co.kr/learn/courses/30/lessons/43162
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 분석
조건
- 배열로 연결관계가 포함된 컴퓨터가 있다.
- 컴퓨터끼리 직접, 혹은 간접적으로 연결되어 있으면 같은 네트워크라 하는데 전체 네트워크의 수를 구하는 문제
풀이방법
- 0번 컴퓨터부터 n-1번 컴퓨터까지 반복문을 돌면서 방문하지 않은 컴퓨터에서 BFS를 돌린다.
코드
import java.util.*;
class Solution {
public int solution(int n, int[][] computers) {
int answer = 0;
boolean[] visited = new boolean[n];
for (int i = 0; i < n; i++) {
if (visited[i]) {
continue;
}
visited[i] = true;
Deque<Integer> que = new ArrayDeque<>();
que.add(i);
answer++;
while (!que.isEmpty()) {
int now = que.poll();
for (int link = 0; link < n; link++) {
if (computers[now][link] == 0) {
continue;
}
if (visited[link]) {
continue;
}
visited[link] = true;
que.add(link);
}
}
}
return answer;
}
}
결과
++
레벨3이라기엔 쉽다
728x90