문제 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 언어 자바 JAVA 로직 동서남북 현재 위치에서 동서남북으로 이동하면서 이웃된 집이 있는지 확인한다. static int[] dx = {1, -1, 0, 0}; // 동:1, 서:-1 static int[] dy = {0, 0, 1, -1}; // 남:1, 북:-1 탐색 시작 위치 탐색을 시작할 위치(단지)를 찾는다. 주어진 구간 내에 위치하면서 방문한 적이 없는 위치를 찾는다. 해당 위치를 ..
문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 언어 자바 JAVA 로직 dfs 사용 후 방문한 기록이 있는 개수를 구하면 됩니다. 참고로 1번은 방문 개수에서 빼야 하므로 최종 개수에서 1을 빼줍니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.uti..
문제 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 언어 자바 JAVA 로직 이동 거리 시작 지점으로부터 이동한 거리를 저장한다. // 시작지점으로부터 이동 거리 int[][] distance = new int[n][m]; // 시작지점의 거리는 1 distance[0][0] = 1; 미로 저장 // 지나갈 수 있는 위치인지 저장 int[][] miro = new int[n][m]; for (int i = 0; i < n; i++) { String info = br.read..
문제 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 언어 자바 JAVA 로직 간선 정보를 저장하기 위한 이중 리스트 선언 2중 리스트를 사용하여 간선 정보를 저장합니다. List 안에 여러 개의 List가 저장된다고 생각하면 됩니다. 예를 들어, graph.get(0)을 실행하면 0번째 인덱스에 저장된 List를 가져오게 됩니다. /** * 간선 정보를 담을 List를 선언한다. * 메모리 공간을 할당해야..