백준

백준 C++ 11403

solfa 2024. 3. 6. 11:19

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

 

11403번: 경로 찾기

가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 길이가 양수인 경로가 있는지 없는지 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

문제 정리

그래프 만들고 경로 찾으면 되는 문제

 

생각

dfs 써서 그래프 연결 유무 확인을 하자! 방문했으면 1, 안했으면 0 출력

 

코드

#include <iostream>
#include <cstring>
using namespace std;

int N, M;
int graph[100][100];
bool visited[100];

void dfs(int start){
    
    for(int i=0 ; i<N ; i++){
        if(graph[start][i] && !visited[i]){
            visited[i] = true;
            dfs(i);
        }
    }
}

int main(){
    cin >> N;

    for(int i=0 ; i<N ; i++){
        for(int j=0 ; j<N ; j++){
            cin >> graph[i][j];
        }
    }
    
    for(int i=0 ; i<N ; i++){
        memset(visited, false, sizeof(visited));
        dfs(i);
        for(int j=0 ; j<N ; j++){
            if(visited[j]){
            cout << 1 << " ";
            }
            else{
            cout << 0 << " ";
            }
        }
        cout << "\n";
    }
}

- 가중치가 없는 그래프!

 

 

참고한 글 + gif 이해가 매우 굿

https://hunidev.tistory.com/43

 

[백준 BOJ 11403번] 경로 찾기 (C / C++ ) [dfs, 그래프이론]

11403번: 경로 찾기 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1초 256MB 27377 15022 10648 54.130% 문제 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j

hunidev.tistory.com

 

728x90

'백준' 카테고리의 다른 글

백준 1240 C++  (0) 2024.03.03
백준 20300 C++  (0) 2024.02.25
백준 1436 C++  (1) 2024.02.25
백준 14889 C++  (1) 2024.02.20
백준 15686 C++  (0) 2024.02.18