삐까냥의 파도타기
1507번) 궁금한 민호 본문
문제 출처 : https://www.acmicpc.net/problem/1507
import java.util.Scanner; public class Q1507 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int[][] map = new int[num][num]; int[][] newMap = new int[num][num];
for ( int i = 0; i < num; i++ ) { for ( int j = 0; j < num; j++) { map[i][j] = newMap[i][j] = sc.nextInt(); } }
for ( int i = 0; i < num; i++ ) { for ( int j = 0; j < num; j++ ) { for ( int k = 0; k < num; k++ ) { if ( i != j && j != k ){ if ( map[i][k] == map[i][j] + map[j][k] ) { newMap[i][k] = 0; } else if ( map[k][j] > map[k][i] + map[i][j] ) { //현재가 최소값인데, 더 최소값이 나오면 에러 System.out.println("-1"); return; } } } } }
int result = 0; for ( int i = 0; i < num; i++ ) { for ( int j = i+1; j < num; j++ ) { if ( newMap[i][j] != 0) { result += newMap[i][j]; } } } System.out.println(result); } } |
'코딩 > 백준 알고리즘' 카테고리의 다른 글
14890번) 경사로 (0) | 2017.10.29 |
---|---|
14889번) 스타트와 링크 (0) | 2017.10.28 |
5567번) 결혼식 - 그래프 (0) | 2017.10.28 |
1068번) 트리 - 그래프 (0) | 2017.10.28 |
4963번) 섬의 개수 - 그래프 (0) | 2017.10.28 |