09-06. DFS(깊이 우선 탐색)
0. 문제 유형
모든 경로 탐색
1. 네트워크
프로그래머스 Lv.3 / 체감 난이도 Lv.2
끝까지 가는 모든 경로를 탐색하는 문제
import java.util.*;
class Solution {
public int solution(int n, int[][] computers) {
int answer = 0;
boolean[] check = new boolean[n];
for (int i = 0; i < n; i++) {
if(!check[i]) {
dfs(computers, i, check);
answer++;
}
}
return answer;
}
public void dfs(int[][] computers, int i, boolean[] check) {
check[i] = true;
for(int j = 0; j < computers.length; j++) {
if (i != j && computers[i][j] == 1 && !check[j]) {
dfs(computers, j, check);
}
}
}
}2. 단어 변환
프로그래머스 Lv.3 / 체감 난이도 Lv.3
하나씩 끝까지 만들어보면서 단어를 찾음 + 이미 사용한 단어 체크하는 배열
3. 여행 경로
프로그래머스 Lv.3 / 체감 난이도 Lv.3
끝까지 가는 모든 경로를 탐색하는 문제 + 정렬
4. 불량사용자
프로그래머스 Lv.3 / 체감 난이도 Lv.3
DFS + 백 트래킹
5. 다단계 칫솔 판매
프로그래머스 Lv.3 / 체감 난이도 Lv.3
트리구조지만 Map과 DFS로 풀 수 있는 문제
Last updated