๋ฐ์ํ
[BOJ] 1167 ํธ๋ฆฌ์ ์ง๋ฆ
https://www.acmicpc.net/problem/1167
๋ฌธ์ ์ ๊ทผ
์ด ๋ฌธ์ ๋ ์๋ ๋ฌธ์ ์ ๊ฑฐ์ ๋๊ฐ์ ๋ฌธ์ ์ด๋ค. ํธ๋ฆฌ๋ฅผ ์
๋ ฅํด์ฃผ๋ ๋ฐฉ์๋ง ๋ค๋ฅด๊ณ ์๊ณ ๋ฆฌ์ฆ์ ๋๊ฐ์ ๋ฌธ์ ์ฌ์ ์ฝ๊ฒ ํ ์ ์์๋ค.
1967 ํธ๋ฆฌ์ ์ง๋ฆ
Code
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class BOJ1167 {
static class Node{
int to;
int dist;
public Node(int to, int dist) {
this.to = to;
this.dist = dist;
}
}
static int V;
static ArrayList<Node>[] graph;
static boolean[] visited;
static int max = 0, maxIndex = 0;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
V = Integer.parseInt(br.readLine());
graph = new ArrayList[V+1];
for(int i = 0; i<=V; i++){
graph[i] = new ArrayList<>();
}
for(int i = 1 ; i<=V; i++){
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int idx = Integer.parseInt(st.nextToken());
while(true){
int to = Integer.parseInt(st.nextToken());
if(to == -1){
break;
}
int dist = Integer.parseInt(st.nextToken());
graph[idx].add(new Node(to,dist));
}
}
visited = new boolean[V+1];
dfs(1,0);
visited = new boolean[V+1];
dfs(maxIndex,0);
System.out.println(max);
}
/**
* dfs ํ์์ ํตํด์ ๊ฐ์ฅ ๋ฉ๋ฆฌ ์๋ ๋
ธ๋์์ ๊ฒฝ๋ก ๊ธธ์ด์ ๊ทธ ๋
ธ๋์ ์ธ๋ฑ์ค๋ฅผ ๊ตฌํ๋ ํจ์.
* @param i ํ์ํ๋ ค๋ ๋
ธ๋ ์ธ๋ฑ์ค
* @param dist ์ง๊ธ๊น์ง์ ๊ฒฝ๋ก์ ๊ธธ์ด
*/
static void dfs(int i, int dist){
if(dist > max){
max = dist;
maxIndex = i;
}
visited[i] = true;
for(Node n : graph[i]){
if(!visited[n.to]){
dfs(n.to,dist+n.dist);
}
}
}
}
์ด๋ ค์ ๋ ์ / ๋ฐฐ์ด ์ / ๋๋ ์
๋ฐ๋ก ์ด์ ํ์๋ ๋ฌธ์ ์ ๊ฑฐ์ ๋๊ฐ์ ๋ฌธ์ ์ฌ์ ์ฝ๊ฒ ํ ์ ์์๋ค.
๊ทธ๋ฐ๋ฐ ๋ค์ ์ฝ๋๋ฅผ ์ง๋ค๋ณด๋๊น ๋ณ์๋ช
์ด๋ ์ฝ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ ๋ณด๊ธฐ์ข๊ฒ ๋ฐ๊พธ์๋ค.(๋๋ฆ๋๋ก ๋ฆฌํฉํ ๋ง)
๋ฐ์ํ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ํ๊ฒ ๋๋ฒ (0) | 2022.04.06 |
---|---|
[Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ๋ค์ ํฐ ์ซ์ (0) | 2022.04.06 |
[Algorithm/Java][๋ฐฑ์ค] 1967 ํธ๋ฆฌ์ ์ง๋ฆ (0) | 2022.04.04 |
[Algorithm/Java][๋ฐฑ์ค] 11729 ํ๋ ธ์ด ํ ์ด๋ ์์ (0) | 2022.04.01 |
[Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ฐพ๊ธฐ (0) | 2022.03.27 |