1 ๋ถ„ ์†Œ์š”

๐Ÿ“ [D4_1210]] Ladder1

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Solution {
	static int N = 100;
	static int des_x, des_y;
	// 3๋ฐฉํ–ฅ
	static int[] dx = { 1, -1, 0 };
	static int[] dy = { 0, 0, -1 };


	public static void main(String[] args) throws IOException, NumberFormatException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		StringBuilder sb = new StringBuilder();

		for (int t = 1; t <= 10; t++) {
			sb.append("#").append(t).append(" ");

			// ์ž…๋ ฅ์— 1,2,3.. ๋“ค์–ด๊ฐ€์žˆ๋‹ค
			int num = Integer.parseInt(br.readLine());

			int[][] arr = new int[N][N];
			boolean[][] isChecked = new boolean[N][N];

			// ๋ฐฐ์—ด ์ž…๋ ฅ
			for (int i = 0; i < N; i++) {
				st = new StringTokenizer(br.readLine(), " ");
				for (int j = 0; j < N; j++) {
					arr[i][j] = Integer.parseInt(st.nextToken());
					
					// ๋„์ฐฉ์ง€์˜ x,y ์ขŒํ‘œ ์ €์žฅ
					if (arr[i][j] == 2) {
						des_x = j;
						des_y = i;
					}
				}
			}
			
			int nx = N;
			int ny = N;

			while(ny != 0) {
				for(int i=0;i<3;i++) {
					nx = des_x + dx[i];
					ny = des_y + dy[i];
					
					if(!(nx<N && nx >=0 && ny<N && ny>=0)) {
						continue;
					}
					// ๋‹ค์Œ ์ขŒํ‘œ์˜ ์ˆซ์ž๊ฐ€ 1์ด๊ณ  boolean ๋ฐฐ์—ด์ด false์ด๋ฉด ( ์•„์ง ์•ˆ๊ฐ”๋‹ค๋Š” ๋ง )
					if(arr[ny][nx] == 1 && !isChecked[ny][nx]) {
						des_x = nx;
						des_y = ny;
						isChecked[des_y][des_x] = true;
						
						// ์ด๋ฏธ ๊ฐ”๊ธฐ ๋•Œ๋ฌธ์— ์ด for๋ฌธ์€ break
						break;
					}
				}
			}
			sb.append(nx).append("\n");
		}
		System.out.println(sb);
	}
}

๐Ÿค” ๋‚˜์˜ ์ƒ๊ฐ

์‚ฌ๋‹ค๋ฆฌ ๋ฌธ์ œ๋ฅผ ๋ณด์ž๋งˆ์ž 3๋ฐฉํ–ฅ ํƒ์ƒ‰๊ณผ ๋ฐ˜๋Œ€๋กœ ์˜ฌ๋ผ๊ฐ€์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•˜์˜€๋‹ค.
๋ฐฐ์—ด์— 1์ธ ๋ถ€๋ถ„๋งŒ ๋”ฐ๋ผ๊ฐ€๋ฉด ๋˜๋Š” ๊ฒƒ์ด๊ธฐ ๋–„๋ฌธ์— ์กฐ๊ฑด์€ ๋‹ค์Œ ์›์†Œ๊ฐ€ 1์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  isChecked๊ฐ€ false์ด๋ฉด ๊ฐˆ ์ˆ˜์žˆ๋Š” ์กฐ๊ฑด์ด ๋˜๊ฒŒ ํ•˜์˜€๋‹ค.