99클럽 코테 스터디 30일차 - bfs

김동하·2024년 8월 21일
0

알고리즘

목록 보기
80/90

풀이

  • 백준 뭐지.. 백준 처음 해보는데 플랫폼 자체가 너무 어렵다.. 문제 이해하는 것도 오래 걸림..
  • 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();
    }
}

정리

profile
프론트엔드 개발

0개의 댓글