728x90
    
    
    
  
오늘의 문제는 백준
6188. Clear Cold Water
문제

문제 설명
농장에서 출발하여 N개의 파이프가 트리 구조로 연결된 시스템에서, 각 파이프의 끝점까지의 거리를 계산하여 가장 차가운 물이 흐르는 곳을 찾는 문제입니다. 각 파이프의 길이는 1이며, 입력으로 주어진 파이프 연결 정보를 바탕으로 헛간에서 각 파이프 끝점까지의 최단 거리를 출력해야 합니다.
문제 풀이 시간
권장 풀이 시간은 60분이었고, 저는 52분이 걸렸습니다.
문제 접근 방식
먼저 트리를 인접 리스트로 표현한 다음 각 노드에서 연결된 노드를 탐색하며 거리를 계산했습니다. 시작점인 파이프 1부터 BFS를 수행하여 각 노드까지의 거리를 구하고, 이 거리를 배열에 저장한 후 모든 파이프의 끝점까지의 거리를 출력하는 방식으로 문제를 풀었습니다.
문제 풀이
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();  
        List<List<Integer>> tree = new ArrayList<>();
        for (int i = 0; i <= N; i++) {
            tree.add(new ArrayList<>());
        }
        for (int i = 0; i < C; i++) {
            int E = sc.nextInt();
            int B1 = sc.nextInt();
            int B2 = sc.nextInt();
            tree.get(E).add(B1);
            tree.get(E).add(B2);
            tree.get(B1).add(E);
            tree.get(B2).add(E);
        }
        int[] distances = new int[N + 1];
        Arrays.fill(distances, -1); 
        distances[1] = 1;  
        Queue<Integer> queue = new LinkedList<>();
        queue.add(1);
        while (!queue.isEmpty()) {
            int current = queue.poll();
            for (int neighbor : tree.get(current)) {
                if (distances[neighbor] == -1) {  
                    distances[neighbor] = distances[current] + 1;
                    queue.add(neighbor);
                }
            }
        }
        for (int i = 1; i <= N; i++) {
            System.out.println(distances[i]);
        }
        sc.close();
    }
}
이렇게 오늘 31일차 TIL을 작성해 보았습니다.
728x90
    
    
    
  '🍪 Ect > #Study' 카테고리의 다른 글
| [99클럽 코테 스터디] 33일차 TIL DFS/BFS (0) | 2024.08.23 | 
|---|---|
| [99클럽 코테 스터디] 32일차 TIL DFS/BFS (0) | 2024.08.22 | 
| [99클럽 코테 스터디] 30일차 TIL 이분탐색 (0) | 2024.08.20 | 
| [99클럽 코테 스터디] 29일차 TIL 이분탐색 (0) | 2024.08.19 | 
| [99클럽 코테 스터디] 28일차 TIL 스택/큐 (0) | 2024.08.18 | 
 
										
									 
										
									 
										
									 
										
									
댓글