[ BOJ 백준 11403번 - 경로 찾기 ] 해설 및 코드
https://www.acmicpc.net/problem/11403 목적 모든 두 정점간의 경로가 존재하는지 구하자. 접근법 1. 플로이드 와샬 알고리즘으로 접근하자. 2. 알고리즘에 의해 i에서 j로 k를 거쳐갈 때, i와 k간의 경로가 존재하고 k와 j간의 경로가 존재하면 i와 j간의 경로가 존재하는 것이므로 값을 갱신한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include #define f(i,l,r) for(int i=l;i>n;f(i,0,n)f(j,0,n)cin>>a[i][j]; f(k,0,n)f(i,0,n)f(j,0,n)if(a[i][k]&&a[k][j])a[i][j]=1; f(i,0,n){ f(j,0,n)cout
[ BOJ 백준 1719번 - 택배 ] 해설 및 코드
https://www.acmicpc.net/problem/1719 목적 모든 정점쌍 간의 최단거리를 구하고, 거쳐가야 할 정점을 구하자. 접근법 1. 문제 분류는 다익스트라이지만, 모든 두 정점간의 최단 거리를 구해야하므로, 플로이드 와샬 알고리즘이 더 적합하다고 본다. 2. 플로이드 와샬 알고리즘에 의해 K 정점에 따라 최단 거리가 갱신될 때, 거쳐가야하는 첫번째 노드를 갱신해준다. 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 #include #define f(i,l,r) for(int i=l;i>n>>m; f(i,1,n)f(j,1,n)g[i][j]=INF; f(i,1,n)g[i][i]=..