728x90
반응형
1. 문제
13023번: ABCDE
문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다.
www.acmicpc.net
2. 풀이
3. 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Main {
static int N, M;
static ArrayList<Integer>[] map;
static boolean[] visited;
static int result;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
map = new ArrayList[N];
visited = new boolean[N];
for (int i = 0; i < N; i++) {
map[i] = new ArrayList<>();
}
for (int i = 0; i < M; i++) {
st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
map[a].add(b);
map[b].add(a);
}
for (int i = 0; i < N; i++) {
if (result == 1) break;
dfs(0, i);
}
System.out.println(result);
}
static void dfs(int depth, int start) {
if(result==1) return;
if (depth == 5) {
result = 1;
return;
}
for (int i = 0; i < map[start].size(); i++) {
int next = map[start].get(i);
if (!visited[next]) {
visited[next] = true;
dfs(depth + 1, next);
visited[next] = false;
}
}
}
}
반응형
반응형
'알고리즘 > 그래프' 카테고리의 다른 글
| [백준 1504] 특정한 최단 경로(Java) (0) | 2020.12.22 |
|---|---|
| [백준 16929] Two Dots(Java) (0) | 2020.12.22 |
| [백준 11724] 연결 요소의 개수(Java) (0) | 2020.12.22 |
| [백준 1012] 유기농 배추(Java) (0) | 2020.12.22 |
| [백준 5567] 결혼식(Java) (0) | 2020.12.22 |