728x90
문제를 잘못읽어서 오래걸림. 네트워크가 나뉘어잇는 개수를 찾는문제
class Solution {
public int solution(int n, int[][] computers) {
int answer = 0;
boolean[] visited = new boolean[n];
for(int ii = 0 ; ii < n ; ii++)
{
/* 같은 네트워크의 조사가 끝날때마다 카운트 */
if(dfs(n, ii, computers, visited))
answer++;
}
return answer;
}
public static boolean dfs(int n, int start, int[][] computers, boolean[] visited)
{
if(visited[start] == true)
return false;
else
visited[start] = true; /* 시작점 방문처리 */
for(int ii = 0 ; ii < n ; ii++)
{
if(computers[start][ii] == 1 && visited[ii] == false) /* 연결되어있고 방문안했다면 */
dfs(n, ii, computers, visited);
}
return true;
}
}
728x90
'코딩 테스트' 카테고리의 다른 글
2667번 단지번호붙이기(자바, java) - DFS (0) | 2023.01.09 |
---|---|
2606번 바이러스(자바, java) - DFS (0) | 2023.01.09 |
프로그래머스 - 문자열 압축 (0) | 2023.01.09 |
이진탐색 샘플 (0) | 2023.01.09 |
프로그래머스 - 로또의 최고 순위와 최저 순위 자바 (0) | 2023.01.09 |