티스토리 뷰

import java.util.*;

public class Main
{
    static int n, m, k; // n = 정점, m = 간선, k = 시작 노드 
   
	public static void main(String[] args) {
	    Scanner in = new Scanner(System.in);
	    n = in.nextInt();
	    m = in.nextInt();
	    k = in.nextInt();
	    
	    boolean[] visited = new boolean[n + 1];
	    LinkedList<Integer>[] adjList = new LinkedList[n + 1];
	    
	    for(int i = 1; i <= n; i++){
	        adjList[i] = new LinkedList<>();
	    }
	    
	    for(int i = 0; i < m; i++){
	        int v1 = in.nextInt();
	        int v2 = in.nextInt();
	        
	        adjList[v1].add(v2);
	        adjList[v2].add(v1);
	    }
	    for(int i = 1; i <= n; i++){
	        Collections.sort(adjList[i]);
	    }
	    
	    BFS(k, adjList, visited);
	}
	
	private static void BFS(int v, LinkedList<Integer>[] adjList, boolean[] visited){
	    Queue<Integer> queue = new LinkedList<Integer>();
	    visited[v] = true;
	    queue.add(v);
	    
	    while(queue.size() != 0){
	        v = queue.poll();
	        System.out.print(v + " ");
	        
	        Iterator<Integer> iter = adjList[v].listIterator();
	        while(iter.hasNext()){
	            int w = iter.next();
	            if(!visited[w]) {
	                visited[w] = true;
	                queue.add(w);
	            }
	        }
	    }
	    
	}
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함