길민호(ethan.mino)
코딩수첩
길민호(ethan.mino)
전체 방문자
오늘
어제
  • 분류 전체보기 (215)
    • Computer Science (0)
    • Web (6)
      • CSS (0)
      • HTML (0)
    • Node.js (0)
    • Javascript (2)
    • Java (46)
      • Spring (27)
      • Jsp (0)
    • C\C++ (2)
    • Programming (0)
    • AI (0)
    • Database (7)
    • Git (5)
    • Algorithm (119)
      • Stack (0)
      • Queue (0)
      • Linked List (0)
      • Sort (0)
      • Simulation (27)
      • Recursion (0)
      • Backtracking (4)
      • Two Pointer (3)
      • Dynamic Programming (19)
      • Greedy (10)
      • Graph (3)
      • Dijkstra (1)
      • BFS\DFS (8)
      • Floyd (1)
      • MST (4)
      • Tree (4)
      • Binary Search (8)
      • Binary Search Tree (4)
    • IntelliJ (4)
    • Vscode (0)
    • Operating System (0)
    • 후기 (3)
    • 성장일지 (13)
    • 스터디 (7)
    • 설치 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • ㅡ

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
길민호(ethan.mino)
Algorithm/BFS\DFS

[백준 11403번] 경로 찾기 (C++)

Algorithm/BFS\DFS

[백준 11403번] 경로 찾기 (C++)

2022. 4. 6. 02:58

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

 

11403번: 경로 찾기

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

www.acmicpc.net


경로 찾기 문제는 각각의 정점에 대해 BFS를 수행하여 해결할 수 있습니다. 단, 주대각선도 0이 될 수 있음을 주의해야합니다. 

 

아래는 전체 코드입니다.

#include <bits/stdc++.h>
using namespace std;
int linked[100][100];
int adj[100][100];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
int n; cin >> n;
for(int i = 0; i < n; i++) // 인접 행렬 입력 받음
for(int j = 0; j < n; j++)
cin >> linked[i][j];
for(int i = 0; i < n; i++){
int vis[100];
fill(vis, vis + 100, 0);
queue<int> q;
q.push(i);
while(!q.empty()){
int cur = q.front(); q.pop();
for(int nx = 0; nx < n; nx++){
if(linked[cur][nx] == 0 || vis[nx] != 0) continue; // 인접하지 않거나 이미 방문한 경우 방문하지 않음
q.push(nx);
vis[nx] = 1;
}
}
for(int j = 0; j < n; j++) adj[i][j] = vis[j]; // 경로 행렬에 기록
}
for(int i = 0; i < n; i++){ // 경로 행렬 출력
for(int j =0 ; j < n; j++)
cout << adj[i][j] << " ";
cout << "\n";
}
}

'Algorithm > BFS\DFS' 카테고리의 다른 글

[백준 16920번] 확장 게임 (C++)  (0) 2022.07.26
[백준 11725번] 트리의 부모 찾기 (C++)  (0) 2022.04.07
[백준 16928번] 뱀과 사다리 게임 (C++)  (0) 2022.04.06
[백준 11724번] 연결 요소의 개수 (C++)  (0) 2022.04.03
[백준 2606번] 바이러스 (C++)  (0) 2022.04.01
    'Algorithm/BFS\DFS' 카테고리의 다른 글
    • [백준 11725번] 트리의 부모 찾기 (C++)
    • [백준 16928번] 뱀과 사다리 게임 (C++)
    • [백준 11724번] 연결 요소의 개수 (C++)
    • [백준 2606번] 바이러스 (C++)
    길민호(ethan.mino)
    길민호(ethan.mino)
    💻 호기심 많은 서버 개발자 길민호입니다.

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.