본 글은 다크모드에 최적화되어 있습니다. 학기 중에는 해설 로직을 포함하지 않습니다. 문제 https://www.acmicpc.net/problem/16918 16918번: 봄버맨 첫째 줄에 R, C, N (1 ≤ R, C, N ≤ 200)이 주어진다. 둘째 줄부터 R개의 줄에 격자판의 초기 상태가 주어진다. 빈 칸은 '.'로, 폭탄은 'O'로 주어진다. www.acmicpc.net 언어 자바 Java 코드 '0'이 아니라 'O'입니다;;;; 이거 때문에 시간 날렸네요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java..
본 글은 다크모드에 최적화되어 있습니다. 학기 중에는 해설 로직을 포함하지 않습니다. 문제 https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 언어 자바 Java 코드 스트림에서 skip(2)를 하는 이유는 0번과 1번 노드는 출력에서 제외해야하기 때문이다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Array..
문제 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..