Mini

백준 13023번 ABCDE 본문

Algorithm/boj

백준 13023번 ABCDE

Mini_96 2022. 8. 23. 11:43

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

 

13023번: ABCDE

문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다.

www.acmicpc.net

 

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

public class Main_13023_유동훈 {

	static int answer;
	static int N;
	static int M;
	static List<Integer>[] list;
	static int[] visit=new int[2001];
	
	
	/*
	 * 친구 4개만 찾으면 정답!
	 * count => 찾은친구 개수
	 */
	static void dfs(int parent, int count)
	{
		//1.부모 방문처리
		visit[parent]=1;
		
		//친구4명 찾음->정답->종료
		if(count==4)
		{
			System.out.println(1);
			System.exit(0);
		}
		
		//2.연결된 자식에 대해
		for(int i=0; i<list[parent].size();++i)
		{
			//3.자식방문안함 ->자식방문, 친구+1
			if(visit[list[parent].get(i)]==0)
				dfs(list[parent].get(i),count+1);
		}
		
		//끝나면 미방문처리
		visit[parent]=0;
			
	}
	
	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());

		
		//리스트 초기화, 할당
		list = new ArrayList[N];
		for (int i = 0; i < N; i++) {
			list[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());

			list[a].add(b);
			list[b].add(a);
		}
		
		//모든노드에 대해 (0~n-1) 친구4명 찾기
		for(int i=0;i<N;++i)
			dfs(i,0);
		
		System.out.println(0);
	}

}

'Algorithm > boj' 카테고리의 다른 글

백준 3055 탈출  (0) 2022.08.24
백준 7576 토마토 //bfs 레벨(깊이) 구별하는법  (0) 2022.08.23
백준 1697 숨바꼭질 //BFS 큐  (0) 2022.08.20
17375: 캐슬디펜스  (0) 2022.08.19
2839번: 설탕배달  (0) 2022.08.16