1. 문제2. 코드(targetX, targetY)는 탐색을 시작할 지점이다. 목표 지점(숫자 = 2)을 탐색 시작 지점으로 결정하고 상하좌우로 탐색하면 된다.arr 배열 : 입력으로 받은 값들answer 배열 : 출력할 값들for문에서 answer 값을 초기화한다.if(num == 1) : 탐색하여 도착할 수 있는 지점초기 값을 -1로 하는 이유는 출력 예시에 설명되어 있듯이, "원래 갈 수 있는 땅인 부분 중에서 도달할 수 없는 위치는 -1을 출력한다." 를 만족해야 하기 때문이다.bfs를 돌면서 answer에는 현재 위치(x, y)에 도착하기까지 이동한 횟수가 담긴다.answer[cy][cx] = answer[y][x] + 1answer[cy][cx] : 현재 위치answer[y][x] : 현재 위..
1. 문제https://www.acmicpc.net/problem/2468 2. 코드입력받은 각 지역의 높이를 탐색하면서, 가장 낮은 지형과 가장 높은 지형의 값을 구한다.smallRainValue, bigRainValuesmallRainValue부터 bigRainValue까지 반복문을 통해 비를 내리게 하고, 2차원 배열을 탐색하면서 안전 영역을 구하면 된다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;public class Main { static int N; static int[][]..
1. 문제근데 사진에는 파란색이 왜 있는 거지? 글만 봤을 때는 파란색에 대한 언급이 없어서 문제를 이해하는 게 오래 걸렸다;;;(a), (b) 모두 outer side에 흰색이 없는데 어떻게 출발하는건지 이해를 못 했다. 사진을 무시하고 입력에 맞춰서 문제를 풀면 된다.흰색 : 0검은색 :1 2. BFS 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.LinkedList;import java.util.Queue;public class Main { static int N, M; static int[][]..
https://www.acmicpc.net/problem/2644코드방향 그래프를 설정하고 DFS 탐색을 진행합니다.탐색 종료 조건으로 현재 시작 노드(s)와 끝 노드(e)가 x, y와 일치하면 종료합니다.import java.io.*;import java.util.*;public class Main { static int n, m; static List> graph = new ArrayList(); static boolean[] visited; static int x, y; static int result = -1; public static void main(String[] args) throws IOException { BufferedReader br = ..
https://www.acmicpc.net/problem/1525 코드2차원으로 배열을 다루지 않고 1차원으로 다루었다.코드를 작성하면서 배웠던 것은 String이 아닌 StringBuffer 또는 StringBuilder를 사용하면 문자열의 특정 인덱스 값을 수정할 수 있다. 덕분에 String의 substring을 사용할 필요가 없어졌다.import java.io.*;import java.util.*;public class Main { static Map map = new HashMap(); static Queue que = new LinkedList(); static int[] dx = {1, -1, 0, 0}; static int[] dy = {0, 0, 1, -1}; ..