Lewis's Tech Keep
[프로그래머스] 네트워크 본문
- dfs
- 노드들은 모두 1의 값을 가지고 있음
- 1 ~ n 까지 노드 중 [1][1], [2][2], [3][3] 중심으로 해당 노드들을 중심으로 dfs 재귀
- 엣지들을 확인하며 엣지들 값이 존재하면 ex( (1, 2) )
- 2를 중심으로 다시 재귀 확인 -> ( 2 -> or 3 )
- dfs 재귀를 돌면서 [1][1] 확인 끝나면 +1 다음은 [2][2] 로 검사
- 그러나 [2][2] 가 이미 존재했다면 [1][2] 엣지를 통해 들어갔던 dfs 재귀로 인해 이미 체크 완료
- 답 완성
더보기
class Solution {
static Boolean dfs(int[][] computers,int n) {
if(computers[n][n] == 0) {
return false;
}
computers[n][n] = 0;
for(int i=0;i<computers.length;i++) {
if(computers[n][i] > 0) {
dfs(computers, i);
}
}
return true;
}
public int solution(int n, int[][] computers) {
int answer = 0;
for(int i=0; i< n; i++) {
if(computers[i][i] > 0 && dfs(computers, i)) {
answer++;
}
}
return answer;
}
}
'Java > 알고리즘' 카테고리의 다른 글
[프로그래머스] 게임 맵 최단거리 (0) | 2021.02.18 |
---|---|
[프로그래머스] 단어 변환 (0) | 2021.02.18 |
[TODO][JAVA] 자바 DOC 많이 읽을 것 (0) | 2021.02.15 |
[프로그래머스] 더 맵게 (0) | 2021.02.14 |
[프로그래머스] 정수 삼각형 (0) | 2021.02.10 |
Comments