문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1 번째 시도
- DFS 문제
- 인접행렬 탐색할 때 대각선 기준으로 위 아래 둘 중 하나만 봐도 된다.
- 이거 구현하려니 머리가 터질 것 같았다 패스 ~
- 숫자 0(의미적1)부터 살펴본다.
- 방문한적이 없다면 answer ++
- dfs로 숫자 0 과 관련되어 있는 숫자들을 다 살펴본다.
- dfs에 거쳐지면 visted = true
- 해당 노드에 인정행렬을 흝어보며 연관되어 있는 숫자들을 살펴본다(dfs)
- 즉, 재귀호출
import java.util.*;
class Solution {
public int solution(int n, int[][] computers) {
boolean[] visited = new boolean[n];
int answer =0;
for(int i = 0; i < n; i++) {
if(!visited[i]) {
answer++;
dfs(i, visited, computers);
}
}
return answer;
}
public void dfs(int node, boolean[] visited, int[][] computers) {
visited[node] = true;
for(int i =0; i < computers[0].length; i++) {
if(!visited[i] && computers[node][i] == 1) {
dfs(i, visited, computers);
}
}
}
}
'알고리즘 > DFS' 카테고리의 다른 글
[백준] 적록색약/자바 (0) | 2024.05.05 |
---|---|
[백준] 트리/자바 (0) | 2024.05.04 |
[백준] DFS와 BFS/자바 (0) | 2024.05.03 |
[프로그래머스] 미로 탈출 명령어 / 자바 (0) | 2024.04.24 |
항해99 24일차 TIL( 타겟 넘버 / 프로그래머스) (0) | 2024.04.21 |