Algorithm/문제 풀이 / / 2020. 2. 23. 18:57

[BAEKJOON_11403 - JAVA] 경로 찾기

반응형

 

해결 과정

인접행렬을 뽑아내는 문제로 기존의 풀었던 문제들과 비슷했지만 어렵게 생각해 오래 걸렸던 문제.
기본적인 bfs에 각 행과 열에 대한 반복문을 씌워 문제를 해결.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
public class Main {
    static int N;
    static int[][] map;
    static int[][] result;
    static void bfs() {
        for (int i = 0; i < N; i++) {
            Queue<Integer> q = new LinkedList<>();
            boolean visited[] = new boolean[N];
            q.offer(i); // 행 단위 검사
            while (!q.isEmpty()) {
                int x = q.poll();
                for (int j = 0; j < N; j++) { // 열단위 검사
                    if (map[x][j] == 1 && !visited[j]) { // 간선이 존재하는 경우 && 방문 여부
                        q.offer(j);
                        visited[j] = true;
                        result[i][j] = 1;
                    }
                }
            }
        }
    }
    public static void main(String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        N = Integer.parseInt(br.readLine());
        map = new int[N][N];
        result = new int[N][N];
        for (int i = 0; i < N; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            for (int j = 0; j < N; j++) {
                map[i][j] = Integer.parseInt(st.nextToken());
            }
        }
        // ============================ 입력 =============================
        bfs();
        // 출력
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < N; j++) {
                System.out.print(result[i][j] + " ");
            }
            System.out.println();
        }
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

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

 

11403번: 경로 찾기

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

www.acmicpc.net

 

반응형

'Algorithm > 문제 풀이' 카테고리의 다른 글

[SWEA_8382 - JAVA] 방향전환  (0) 2020.03.03
[SWEA_1247 - JAVA] 최적 경로  (0) 2020.03.01
[BAEKJOON_2178 - JAVA] 미로 탐색  (0) 2020.02.23
[BAEKJOON_1012 - JAVA] 유기농 배추  (0) 2020.02.22
[BAEKJOON_7576 - JAVA] 토마토  (0) 2020.02.16
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유