투로드
Coder ToLoad
투로드
전체 방문자
오늘
어제

블로그 메뉴

  • 홈
  • 알고리즘
  • CS
  • GITHUB
  • 태그
  • 분류 전체보기 (69)
    • Toy Project (0)
      • EternalSNS (0)
    • Algorithm (46)
      • BaekJoon (38)
      • Programmers (7)
      • Code Tree (1)
    • Computer Science (13)
      • JAVA (7)
      • DataBase (4)
    • Backend (7)
      • Spring (2)
      • JPA (2)
      • Django (3)
    • Mobile (2)
      • Android (2)
    • Unity (1)

인기 글

최근 글

hELLO · Designed By 정상우.
투로드

Coder ToLoad

Algorithm/BaekJoon

[JAVA] 백준 11403 : 경로 찾기

2021. 4. 5. 17:54
문제
 

11403번: 경로 찾기

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

www.acmicpc.net

 

해결 방법

플로이드 와샬을 사용하는 기본적인 문제이다.

입력에서 주어진 값들을 해당 하는 배열에 넣고,

플로이드 와샬 알고리즘을 이용해서 정점 i에서 k를 들렸다가 j로 갈 수 있는 경로를 찾아서

배열에 입력해준 뒤에 출력하면 된다.

 

 

코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.io.IOException;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());
		int[][] map = new int[N][N];
		
		StringTokenizer st;
		for (int i = 0; i < N; i++) {
			st = new StringTokenizer(br.readLine(), " ");
			for (int j = 0; j < N; j++) {
				int temp = Integer.parseInt(st.nextToken());
				if (temp == 1) {
					map[i][j] = 1;
				} else {
					map[i][j] = 0;
				}
			}
		}
		
		for (int k = 0; k < N; k++) {
			for (int i = 0; i < N; i++) {
				for (int j = 0; j < N; j++) {
					if (map[i][j] == 0) {
						if (map[i][k] == 1 && map[k][j] == 1) {
							map[i][j] = 1;
						}
					}
				}
			}
		}
		
		
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < N; i++) {
			for (int j = 0; j < N; j++) {
				sb.append(map[i][j] + " ");
			}
			sb.append("\n");
		}
		
		System.out.println(sb);
		
	}
}

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

[JAVA] 백준 3109 : 빵집  (0) 2021.04.12
[JAVA] 백준 6549 : 히스토그램에서 가장 큰 직사각형  (0) 2021.04.09
[JAVA] 백준 11779 : 최소비용 구하기 2  (0) 2021.04.05
[JAVA] 백준 4485 : 녹색 옷 입은 애가 젤다지?  (0) 2021.04.02
[JAVA] 백준 1261 : 알고스팟  (0) 2021.04.02
    'Algorithm/BaekJoon' 카테고리의 다른 글
    • [JAVA] 백준 3109 : 빵집
    • [JAVA] 백준 6549 : 히스토그램에서 가장 큰 직사각형
    • [JAVA] 백준 11779 : 최소비용 구하기 2
    • [JAVA] 백준 4485 : 녹색 옷 입은 애가 젤다지?
    투로드
    투로드
    훌륭한 프로그래머가 되어가는 과정을 담아보는 중입니다.

    티스토리툴바