풀이
- 백준 뭐지.. 백준 처음 해보는데 플랫폼 자체가 너무 어렵다.. 문제 이해하는 것도 오래 걸림..
- input을 어떻게 넣어야 하는지 몰라서 지피티 참고함
코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int c = sc.nextInt();
int[] dis = new int[c + 1];
Arrays.fill(dis, 0);
distances[1] = 1;
Map<Integer, List<Integer>> graph = new HashMap<>();
for (int i = 0; i < C; i++) {
int e = sc.nextInt();
int b1 = sc.nextInt();
int b2 = sc.nextInt();
tree.putIfAbsent(e, new ArrayList<>());
tree.get(e).add(b1);
tree.get(e).add(b2);
}
Queue<Integer> queue = new LinkedList<>();
queue.add(1);
while (!queue.isEmpty()) {
int node = queue.poll();
int nodeDis = dis[node];
if (graph.containsKey(node)) {
for (int nextNode : graph.get(node)) {
if (dis[nextNode] == 0) {
dis[nextNode] = nodeDis + 1;
queue.add(nextNode);
}
}
}
}
for (int i = 1; i <= n; i++) {
System.out.println(dis[i]);
}
sc.close();
}
}
정리