스터디/Algorithm

[백준] ABCDE 13923 java - dfs

혜유우 2024. 8. 21. 16:21

https://www.acmicpc.net/problem/13023

 

일단 문제가 잘 이해가 안가서 고생했다 ㅜㅜ

A,B,C,D,E는 임의의 기호이고

친구 관계 5개를 찾아주면 된다..!

 

 

import java.io.*;
import java.util.*;

public class Main {
    static ArrayList<Integer> [] relations;
    static boolean[] visited;
    static int flag = 0;

    static void dfs(int start, int cnt){
        if(cnt==5 || flag==1){
            flag = 1;
            return;
        }

        for(int i:relations[start]){
            if(!visited[i]){
                visited[i] = true;
                dfs(i, cnt+1);;
                visited[i] = false;
            }
        }
    }

    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());

        relations = new ArrayList[N];

        for(int i=0;i<N;i++)
            relations[i] = new ArrayList<>();

        for(int i=0;i<M;i++){
            st = new StringTokenizer(br.readLine());
            int friend1 = Integer.parseInt(st.nextToken());
            int friend2 = Integer.parseInt(st.nextToken());
            relations[friend1].add(friend2);
            relations[friend2].add(friend1);
        }

        for(int i=0;i<N;i++){
            visited = new boolean[N];
            visited[i] = true;
            dfs(i, 1);
        }

        System.out.println(flag);

    }

}