목록시뮬레이션 (3)
Dev.baelanche
BFS로 치즈의 외곽을 구하고 반복된 시뮬레이션으로 정답을 도출했다. 1. 주어진 n, m을 n+2, m+2 하여 배열을 만든다. 치즈 외곽 탐색을 위해 편의상 바깥쪽 배열을 한칸씩 여유를 두었다. 2. 배열 탐색을 줄이기 위해 치즈의 개수를 세어 변수에 담는다. 3. 치즈가 녹기 전의 배열을 저장한다. 4. 외곽 치즈를 체크한다. (0, 0)은 무조건 치즈가 없으므로 BFS를 통해 치즈가 없는 부분을 모두 체크한다. (배열 값을 -1로 만들었다.) 5. 치즈 배열 인덱스에서 상하좌우 중 한개라도 -1이면 외곽의 치즈이므로 임의의 큐에 담는다. 6. 큐에 담은 좌표를 모두 0으로 바꾼다. 7. -1로 만든 외곽치즈를 다시 0으로 바꾼다. public class Main { static int n; sta..
문제에서 요구하는대로 로봇을 움직여주면 된다. 필자는 DFS로 풀었다. 흠.. 그냥 DFS문제라서 추가적으로 언급할 얘기는 없다;; public class Main { static int r; static int c; static int a[][]; static int d[] = new int[4]; static int lx; static int ly; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; st = new StringTokenizer(br.readLine()); r = In..
가로, 세로의 움직임을 따로 생각해보자. 가로로는 오른쪽, 왼쪽 순으로 움직이며 w*2 만큼의 시간이 경과하면 제자리로 돌아온다. 세로로도 마찬가지며 방향만 위, 아래 순이다. 시간 t 를 w*2 로 나눈 나머지만큼만 더 움직여주면 된다. public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; st = new StringTokenizer(br.readLine()); int w = Integer.parseInt(st.nextToken()); int h = I..