[DFS] 13023. ABCDE

안수진·2024년 8월 28일

Baekjoon

목록 보기
43/55
post-thumbnail

[BOJ] 13023. ABCDE

📌 풀이 과정

✨ 제출 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class ABCDE_13023 {
	
	static int answer;
	static boolean[] check;
	static ArrayList<Integer>[] friends;

	public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken()); // 사람 수
        int M = Integer.parseInt(st.nextToken()); // 친구 관계 수
        
    	check = new boolean[N];
        friends = new ArrayList[N];
        for(int i = 0; i < N; i++) {
        	friends[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());
        	friends[a].add(b);
        	friends[b].add(a);
        }
        
        answer = 0;
        for(int i = 0; i < N; i++) {
            dfs(i, 1);
            if(answer == 1) break;
        }
        
        System.out.println(answer);
	}
	
	static void dfs(int x, int depth) {
		if(depth == 5) {
			answer = 1;
			return;
		}
		
		check[x] = true;
		for(int i = 0; i < friends[x].size(); i++) {
			int next = friends[x].get(i);
			if(!check[next]) {
				dfs(next, depth + 1);
			}
		}
		check[x] = false;
	}

}
profile
항상 궁금해하기

0개의 댓글