๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/1956)
< ์ด๋ >
๋ฌธ์ ํ์ด
๋จผ์ a๋ฒ ๋ง์์์ b๋ฒ ๋ง์๊น์ง์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ์ฐพ์ ํ b๋ฒ ๋ง์์์ ๋ค์ a๋ฒ์ผ๋ก ์ฌ ์ ์๋์ง๋ฅผ ํ์ธํ์ฌ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class _1956_ { // ์ด๋
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine());
int v = Integer.parseInt(st.nextToken());
int e = Integer.parseInt(st.nextToken());
int arr[][] = new int[v][v];
for (int i = 0; i < v; i++) {
for (int j = 0; j < v; j++) {
if (i == j)
arr[i][j] = 0;
else
arr[i][j] = Integer.MAX_VALUE;
}
}
for (int i = 0; i < e; i++) {
st = new StringTokenizer(bf.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
arr[a - 1][b - 1] = c;
}
// [์์, ๋] = [์์, ์ค๊ฐ]+[์ค๊ฐ, ๋]
for (int i = 0; i < v; i++) {
for (int j = 0; j < v; j++) {
for (int k = 0; k < v; k++) {
if (arr[j][i] == Integer.MAX_VALUE || arr[i][k] == Integer.MAX_VALUE)
continue;
arr[j][k] = Math.min(arr[j][k], arr[j][i] + arr[i][k]);
}
}
}
int result = Integer.MAX_VALUE;
for (int i = 0; i < v; i++) {
for (int j = 0; j < v; j++) {
if (i == j || arr[i][j] == Integer.MAX_VALUE || arr[j][i] == Integer.MAX_VALUE)
continue;
if (arr[i][i] != 0)
arr[i][i] = Math.min(arr[i][i], arr[i][j] + arr[j][i]);
else
arr[i][i] = arr[i][j] + arr[j][i];
result = Math.min(result, arr[i][i]);
}
}
if(result==Integer.MAX_VALUE)
System.out.println(-1);
else
System.out.println(result);
}
}
Main
๋ณ์)
v, e : ๋ง์ ๊ฐ์, ๋๋ก ๊ฐ์
arr : ์ต๋จ ๊ฑฐ๋ฆฌ
a, b, c : a๋ฒ ๋ง์์์ b๋ฒ ๋ง์๋ก ๊ฐ๋ ๊ฑฐ๋ฆฌ c
result : ์ต์ ์ฌ์ดํด์ ๋๋ก ๊ธธ์ด์
- ๋ง์ ๊ฐ์(v), ๋๋ก ๊ฐ์(e) ์ ๋ ฅ
- a๋ฒ ๋ง์์์ b๋ฒ ๋ง์๋ก ๊ฐ๋ ๊ฑฐ๋ฆฌ c ์ ์ฅ
- [์์ ๋ง์, ๋ ๋ง์] = [์์ ๋ง์, ์ค๊ฐ ๋ง์]+[์ค๊ฐ ๋ง์, ๋ ๋ง์]์ ๊ตฌํจ
- ์ฌ์ดํด์ ์ฐพ์์ผ ํ๋ฏ๋ก [์์ ๋ง์, ์์ ๋ง์] = [์์ ๋ง์, ๋ ๋ง์] + [๋ ๋ง์, ์์ ๋ง์]์ธ ๊ฒ์ ์ฐพ์ผ๋ฉด์ ์ต์ ์ฌ์ดํด์ ๋๋ก ๊ธธ์ด ํฉ์ ๊ตฌํจ
- ์ต์ ์ฌ์ดํด์ ๋๋ก ๊ธธ์ด ํฉ(result) ์ถ๋ ฅ
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 9575_ํ์ด์ ์ (1) | 2023.10.24 |
---|---|
[Baekjoon] 1058_์น๊ตฌ (1) | 2023.10.23 |
[Baekjoon] 1015_์์ด ์ ๋ ฌ (0) | 2023.10.19 |
[Baekjoon] 20044_Project Teams (0) | 2023.10.18 |
[Baekjoon] 2548_๋ํ ์์ฐ์ (0) | 2023.10.17 |