Search

์ด์†Œ์˜

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
4169
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
package lv2; import java.util.Arrays; public class Solution { // ๋ฐฐ๋‹ฌ private int solution(int N, int[][]road, int K) { // 1๏ธโƒฃ final int INF = 987654321; int answer = 0; int[] dist = new int[N+1]; int[][] adj = new int[N+1][N+1]; boolean[] v = new boolean[N+1]; // 2๏ธโƒฃ for (int i = 1; i < adj.length; i++) { Arrays.fill(adj[i], INF); adj[i][i] = 0; } for (int i = 0; i < road.length; i++) { if(adj[road[i][0]][road[i][1]] == INF) { adj[road[i][0]][road[i][1]] = road[i][2]; adj[road[i][1]][road[i][0]] = road[i][2]; } else { adj[road[i][0]][road[i][1]] = Math.min(adj[road[i][0]][road[i][1]], road[i][2]); adj[road[i][1]][road[i][0]] = Math.min(adj[road[i][1]][road[i][0]], road[i][2]); } } // 3๏ธโƒฃ Arrays.fill(dist, INF); dist[1] = 0; // 4๏ธโƒฃ int cnt = 0; while(cnt < N-1) { int min = INF; // ์ตœ์†Œ๊ฐ’์„ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด ๋ฌด์ œํ•œ์„ ๋‹ด์€ ์ตœ์†Œ๊ฐ’ ๋ณ€์ˆ˜ ์„ ์–ธ int node = 0; // ๊ฐ€์žฅ ํƒ์ƒ‰ํ•˜์ง€ ์•Š์€ ๋งˆ์„ ์ค‘ ๊ฐ€์žฅ ์ตœ์†Œํ•œ์˜ ๊ฑฐ๋ฆฌ์— ์žˆ๋Š” ๋งˆ์„ ๋ฒˆํ˜ธ๋ฅผ ๋‹ด์„ ๋ณ€์ˆ˜ // 5๏ธโƒฃ for (int i = 1; i < dist.length; i++) { if(!v[i] && dist[i] < min) { min = dist[i]; node = i; } } cnt++; v[node] = true; // 6๏ธโƒฃ for (int i = 1; i < adj.length; i++) { if(!v[i] && adj[node][i] != INF && dist[i] > dist[node] + adj[node][i]) { dist[i] = dist[node] + adj[node][i]; } } } // 8๏ธโƒฃ for (int i = 1; i < dist.length; i++) { if(dist[i] <= K) { answer++; } } return answer; } public static void main(String[] args) { Solution delivery = new Solution(); /*int N = 5; int[][] road = {{1, 2, 1}, {2, 3, 3}, {5, 2, 2}, {1, 4, 2}, {5, 3, 1}, {5, 4, 2}}; int K = 3*/; int N = 6; int[][] road = {{1, 2, 1}, {1, 3, 2}, {2, 3, 2}, {3, 4, 3}, {3, 5, 2}, {3, 5, 3}, {5, 6, 1}}; int K = 4; System.out.println(delivery.solution(N, road, K)); } }
Java
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
๋ณ€์ˆ˜ ๋ฐ ๋ฐฐ์—ด ์„ ์–ธ
์–‘๋ฐฉํ–ฅ ๊ฑฐ๋ฆฌ ์ฒดํฌ
๋ชจ๋“  ์ธ๋ฑ์Šค ๊ฑฐ๋ฆฌ ๋ฐฐ์—ด ๋ฌด์ œํ•œ, 1๋ฒˆ ๋งˆ์„ ์ด๋™๊ฑฐ๋ฆฌ 0 ์ดˆ๊ธฐํ™”
while๋ฌธ์„ ๋ฉˆ์ถ”๊ธฐ ์œ„ํ•œ cnt (๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋…ธ๋“œ ํƒ์ƒ‰ํ•œ ๊ฒฝ์šฐ while ๋ฉˆ์ถ”๊ธฐ)
๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋งˆ์„ ์ค‘ ๊ฐ€์žฅ ์ตœ์†Œํ•œ์˜ ๊ฑฐ๋ฆฌ๋กœ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ๋งˆ์„ pick
ํ˜„์žฌ ๋ฐฉ๋ฌธํ•œ ๋งˆ์„๋กœ๋ถ€ํ„ฐ ๊ฐ ์ด์–ด์ง„ ๋งˆ์„์— ๋Œ€ํ•ด ์ตœ์†Œํ•œ์˜ ๊ธธ์ด ๊ตฌํ•˜๊ธฐ
while๋ฌธ์˜ ์ข…๋ฃŒ๋ ๋•Œ๊นŒ์ง€ ~ ๋ฐ˜๋ณต
1๋ฒˆ ~ ๊ฐ ๋งˆ์„๊นŒ์ง€์˜ ๊ธธ์ด ๋ฐฐ์—ด ์ค‘ K์ดํ•˜์ธ ๋งˆ์„ ์ˆ˜ ์„ธ๊ธฐ
๋ธ”๋กœ๊ทธ ์ •๋ฆฌ