ouosssssssa   4년 전

코드상 잘못된부분을 모르겠는데 왜 98퍼센트에서 틀릴까요;;ㅠㅠ

ouosssssssa   4년 전

없는경우 0으로 안바꿔줬네요;;;

다른분들은 문제 잘읽으시길 바랍니다


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;
import java.util.StringTokenizer;

public class 플로이드 {
static int N, M;// 도시갯수,버스갯수
static int[][] Arr;// 인접행렬 start end

public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
M = sc.nextInt();
int max = 10000001;

Arr = new int[N + 1][N + 1];

for (int i = 0; i <= N; i++) {
Arrays.fill(Arr[i], max);
}

for (int i = 0; i < M; i++) {
int city1 = sc.nextInt();
int city2 = sc.nextInt();
int cost = sc.nextInt();
Arr[city1][city2] = Arr[city1][city2] > cost ? cost : Arr[city1][city2];
}

for (int k = 1; k <= N; k++) {
for (int i = 1; i <= N; i++) {
if (i == k)
continue;
for (int j = 1; j <= N; j++) {
if (j == k || j == i)
continue;

if (Arr[i][k] != max && Arr[k][j] != max
&& Arr[i][j] > Arr[i][k] + Arr[k][j]) {
Arr[i][j] = Arr[i][k] + Arr[k][j];
}
}
}
}

for (int i = 1; i <= N; i++) {
Arr[i][i] = 0;
}

for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++) {
if(Arr[i][j] == max) {
Arr[i][j] = 0;
}
System.out.print(Arr[i][j] + " ");
}
System.out.println();
}
}
}

댓글을 작성하려면 로그인해야 합니다.