BFS 3

[JAVA] 백준 연구소 DFS+BFS

DFS + BFS를 이용한 문제의 대표유형이다. DFS는 depth를 인수로 재귀를 돌고, BFS는 Queue를 이용하여 queue.isEmpty()를 이용하여 재귀를 돌린다. 각각의 주석을 통해 dfs와 bfs의 대표적인 풀이법을 살펴보면 도움이 될 듯하다. import java.util.*; import java.io.*; class Main { static int[][] grid; static int N, M; static int max = 0; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s ..

[JAVA] 백준 "단지번호붙이기"

필자의 코드는 계속해서 오답이라고 뜨는데, 모든 반례가 다 알맞게 출력된다. import java.io.*; import java.util.*; class Main { static int[][] grid; static boolean[][] visited; static int[][] vector = {{1, 0}, {-1, 0}, {0, -1}, {0, 1}}; static int count; public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); grid = new int[n+1][n+1]; visited = new boolean[n+1][n+1];..

[JAVA] 백준 "바이러스"

간단히 BFS나 DFS를 통해서 시작노드1로부터 연결되어있는 지점을 방문처리하면 되는 문제다. 백준 테스트가 아직 적응이 안돼서, System.out.println으로 채점되는 것을 유의하지 못해서 시간을 질질 끌었다. 필자는 dfs로 방문하고 checked 가 true인 것의 개수를 세는 방식으로 체크하였다. 단, 1에서 전염시키는 컴퓨터의 수이므로 -1을 마지막에 해주어야한다. import java.io.*; import java.util.*; public class Main { //함수에서 사용할 변수들 static int[][] check; //간선 연결상태 static boolean[] checked; //확인 여부 static int n; //정점개수 static int m; //간선개수 st..