๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 13023๋ฒˆ - ABCDE

by dkswnkk 2021. 11. 4.
 

13023๋ฒˆ: ABCDE

๋ฌธ์ œ์˜ ์กฐ๊ฑด์— ๋งž๋Š” A, B, C, D, E๊ฐ€ ์กด์žฌํ•˜๋ฉด 1์„ ์—†์œผ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

#include <iostream>
#include <vector>
#include <memory.h>
using namespace std;

vector<int>graph[2001];
int visited[2001];
int N,M;    //N=์‚ฌ๋žŒ์˜ ์ˆ˜, M=์นœ๊ตฌ ๊ด€๊ณ„์˜ ์ˆ˜
bool check;

void dfs(int start,int depth){
    visited[start]=1;
    if(depth==4){
        check=true;
        return;
    }
    else{
        for(int i=0; i<graph[start].size(); i++){
            if(!visited[graph[start][i]]) dfs(graph[start][i],depth+1); //๋ฐฉ๋ฌธ ์•ˆํ–ˆ์„๋•Œ dfs
        }
        visited[start]=0;   //์ด๋ถ€๋ถ„ ์•ˆํ•ด์ค˜์„œ ํ‹€๋ฆผ.
    }
    return;
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    cin>>N>>M;

    for(int i=0; i<M; i++){ //์„œ๋กœ ์นœ๊ตฌ๊ด€๊ณ„๋ฉด ์—ฐ๊ฒฐ.(์–‘๋ฐฉํ–ฅ)
        int a,b; cin>>a>>b;
        graph[a].push_back(b);
        graph[b].push_back(a);
    }

    for(int i=0; i<N; i++){
        dfs(i,0);
        memset(visited, 0,sizeof(visited));
    }


    if(check) cout<<1;
    else cout<<0;
}

๋Œ“๊ธ€