๐์์ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ
๋ชจ๋ ์ ์ ์ ์ฐ๊ฒฐ์ ์ ๋ฌด๋ฅผ ํ์
ํด์ผํ๊ธฐ ๋๋ฌธ์ ํ๋ก์ด๋-์์
์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ต๋๋ค.
๋จผ์ intํ์ 2์ฐจ์ ์ธ์ ํ๋ ฌ์ ์์ฑํด์ฃผ๊ณ ์ต๋๊ฐ INF๋ฅผ ์ฑ์์ค๋๋ค.
for (int[] arr : matrix) {
Arrays.fill(arr, INF);
}
results์์ ์ธ์ ํ ํ๋ ฌ์ 1๋ก ํ์๋ฅผ ํด์ค๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ก์ด๋-์์
์๊ณ ๋ฆฌ์ฆ์ ํตํด ๋ชจ๋ ์ ์ ์ ๋ชจ๋ ์ ์ ์ผ๋ก ๋ถํฐ ์ต์๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํด์ค๋๋ค.
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++) {
// ๋์ฐฉ์ง๊ฐ ๊ฒฝ์ ์ง๋ ์ถ๋ฐ์ง์ ๊ฐ๋ค๋ฉด continue
if(j==k || j==i) continue;
if(matrix[i][j]>matrix[i][k] + matrix[k][j]) {
matrix[i][j] = matrix[i][k] + matrix[k][j];
}
}
}
}
๊ทธ๋ฆฌ๊ณ ์ธ์ ํ๋ ฌ์ ํ์ํ์ฌ ์ฐ๊ฒฐ์ด ๋์ด์๋ค๋ฉด answer์ count ํด์ฃผ์ด ๋ต์ ๊ตฌํ์์ต๋๋ค.
ํ๋ก์ด๋-์์ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ฌด ์ค๋๋ง์ ์ฌ์ฉํด์ ๊ฐ๋ ์ ๋ค์ ์ตํ ํ ์ ์ฉํด์ ๋ฌธ์ ๋ฅผ ํ์์ต๋๋ค.
import java.util.*;
public class ์์ {
static final int INF = 9999999;
static int[][] matrix;
public int solution(int n, int[][] results) {
int answer = 0;
// ์ธ์ ํ๋ ฌ
matrix = new int[n+1][n+1];
// INF๋ก ํ๋ ฌ์ ๋ค ์ฑ์ด๋ค. (์ธ์ ํ์ง ์์ผ๋ฉด INF)
for (int[] arr : matrix) {
Arrays.fill(arr, INF);
}
// ์ธ์ ํ ํ๋ ฌ์ 1๋ก ์ฑ์ฐ๊ธฐ! ์นํจ๊ฐ ์์ผ๋ฏ๋ก ๋จ๋ฑกํฅ ๊ทธ๋ํ
for (int[] arr : results) {
matrix[arr[0]][arr[1]] = 1;
}
// ๊ฒฝ์ ์ง
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++) {
// ๋์ฐฉ์ง๊ฐ ๊ฒฝ์ ์ง๋ ์ถ๋ฐ์ง์ ๊ฐ๋ค๋ฉด continue
if(j==k || j==i) continue;
if(matrix[i][j]>matrix[i][k] + matrix[k][j]) {
matrix[i][j] = matrix[i][k] + matrix[k][j];
}
}
}
}
for(int i=1; i<=n; i++) {
boolean check = true;
for(int j=1; j<=n; j++) {
// ์๊ธฐ ์์ ์ด ์๋ ๊ฒฝ์ฐ
if(i==j) continue;
// ์ด๋ ํ์ชฝ์ด๋ผ๋ ์ฐ๊ฒฐ์ด ์๋์ด์๋ ๊ฒฝ์ฐ false
if(matrix[i][j]==INF && matrix[j][i]==INF) {
check = false;
}
}
if(check) {
answer++;
}
}
return answer;
}
}
์ ํ์ฑ | ํ ์คํธ |
---|---|
ํ ์คํธ 1 | ํต๊ณผ (0.04ms, 51.9MB) |
ํ ์คํธ 2 | ํต๊ณผ (0.07ms, 52.8MB) |
ํ ์คํธ 3 | ํต๊ณผ (0.11ms, 53.1MB) |
ํ ์คํธ 4 | ํต๊ณผ (0.61ms, 52.6MB) |
ํ ์คํธ 5 | ํต๊ณผ (1.87ms, 52.3MB) |
ํ ์คํธ 6 | ํต๊ณผ (6.82ms, 55.1MB) |
ํ ์คํธ 7 | ํต๊ณผ (12.70ms, 53.1MB) |
ํ ์คํธ 8 | ํต๊ณผ (15.29ms, 54.8MB) |
ํ ์คํธ 9 | ํต๊ณผ (18.90ms, 55.1MB) |
ํ ์คํธ 10 | ํต๊ณผ (27.29ms, 57.3MB) |