From 77b0bbb7ae08b71b2300e49f509a4c2348184d07 Mon Sep 17 00:00:00 2001 From: jola7373 Date: Tue, 18 Jan 2022 19:07:57 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EB=B8=94=EB=A1=9D=20=EC=9D=B4=EB=8F=99?= =?UTF-8?q?=ED=95=98=EA=B8=B0=20=ED=91=B8=EB=8A=94=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../part03/Q22_movingBlock/Main.java | 141 ++++++++++++++++++ .../Q09_stringCompression/Solution.java | 39 +++-- 2 files changed, 159 insertions(+), 21 deletions(-) create mode 100644 src/annmj/thisiscodingtest/part03/Q22_movingBlock/Main.java diff --git a/src/annmj/thisiscodingtest/part03/Q22_movingBlock/Main.java b/src/annmj/thisiscodingtest/part03/Q22_movingBlock/Main.java new file mode 100644 index 0000000..1ac8c5c --- /dev/null +++ b/src/annmj/thisiscodingtest/part03/Q22_movingBlock/Main.java @@ -0,0 +1,141 @@ +package annmj.thisiscodingtest.part03.Q22_movingBlock; + +import java.util.Arrays; +import java.util.LinkedList; +import java.util.Queue; +import java.util.Scanner; + +/* +(1,1)의 위치에서 (N,N)까지 이동하는데 걸리는 시간을 출력 + +무지가 이동취할 수 있는 행동 +1. 상,하,좌,우 이동 +2. 90도 돌기 first기준, second기준 으로 2가지 방향으로 가능 + + */ +class Node{ + + public Node(int xFirst, int yFirst, int xEnd, int yEnd, boolean ishorizontal) { + this.xFirst = xFirst; + this.yFirst = yFirst; + this.xEnd = xEnd; + this.yEnd = yEnd; + this.horizontal = ishorizontal; + } + + public int getxFirst() { + return xFirst; + } + + public void setxFirst(int xFirst) { + this.xFirst = xFirst; + } + + public int getyFirst() { + return yFirst; + } + + public void setyFirst(int yFirst) { + this.yFirst = yFirst; + } + + public int getxEnd() { + return xEnd; + } + + public void setxEnd(int xEnd) { + this.xEnd = xEnd; + } + + public int getyEnd() { + return yEnd; + } + + public void setyEnd(int yEnd) { + this.yEnd = yEnd; + } + public boolean isHorizontal() { + return ishorizontal; + } + + public void setisHorizontal(boolean horizontal) { + this.ishorizontal = horizontal; + } + + int xFirst; + int yFirst; + int xEnd; + int yEnd; + boolean ishorizontal; + + + +} +public class Main { + static int answer; + static int N; + + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + + } + public int solution(int[][] board) { + answer = 0; + N = board.length; + + bfs(board); + return answer; + } + public static void bfs(int[][] board){ + Queue queue = new LinkedList<>(); + boolean visited[][] = new boolean[board.length+1][board.length+1]; + Arrays.fill(visited[0], true); + + queue.add(new Node(1,1,1,2, true)); + while (!queue.isEmpty()){ + Node current = queue.poll(); + + int xFirst = current.getxFirst(); + int yFirst = current.getyFirst(); + int xEnd = current.getxEnd(); + int yEnd = current.getyEnd(); + boolean isHorizontal = current.isHorizontal(); + + for (int i = 0; i < 4; i++) { + + //이동시에 두가지 케이스로 나뉜다. + //가로일시, 세로일시 + if(isHorizontal){ //가로일때 + int nxFirst = xFirst + dx[i]; + int nyFirst = yFirst + dy[i]; + int nxEnd = xEnd + dx[i]; + int nyEnd = yEnd + dy[i]; + }else{ //세로일때 + int nxFirst = xFirst + dx[i]; + int nyFirst = yFirst + dy[i]; + int nxEnd = xEnd + dx[i]; + int nyEnd = yEnd + dy[i]; + } + + if(boundaryCheck(nxFirst,nyFirst,nxEnd, nyEnd) || visit[nx][ny] ){ + //90도 도는 로직 + + } + int diff = Math.max(arr[nx][ny], arr[x][y]) - Math.min(arr[nx][ny], arr[x][y]); + if(diff >= L && diff <= R) { + unionExist = true; + union[nx][ny] = count; + dfs(count, nx, ny); + } + } + } + } + public static void turn(){ + + } + //범위를 넘어가는지 확인하는 메서드 + public static boolean boundaryCheck(int nxFirst,int nyFirst,int nxEnd, int nyEnd){ + return nxFirst < 0 || nyFirst < 0 || nxFirst >= N || nyFirst >= N || + nxEnd < 0 || nyEnd < 0 || nxEnd >= N || nyEnd >= N; + } +} diff --git a/src/jihye/thisiscodingtest/part03/Q09_stringCompression/Solution.java b/src/jihye/thisiscodingtest/part03/Q09_stringCompression/Solution.java index a399575..6b7c933 100644 --- a/src/jihye/thisiscodingtest/part03/Q09_stringCompression/Solution.java +++ b/src/jihye/thisiscodingtest/part03/Q09_stringCompression/Solution.java @@ -1,7 +1,6 @@ package jihye.thisiscodingtest.part03.Q09_stringCompression; public class Solution { - private static boolean check = false; public static void main(String[] args) { String s = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; @@ -13,54 +12,52 @@ public static int solution(String s) { int answer = s.length(); while (true) { - if (unit > s.length() / 2) {//자르는 단위가 절반을 넘어가면 break + if (unit > s.length() / 2) { //자르는 단위가 절반을 넘어가면 break break; } else { - int n = CompressedStringLength(unit, s); - if (check == true) { - answer = Math.min(answer, n); - } + int n = getCompressedStringLength(unit, s); + answer = Math.min(answer, n); } unit++; - check = false; } return answer; } - public static int CompressedStringLength(int unit, String s) {//문자열 찾기 구간 + public static int getCompressedStringLength(int unit, String s) { //문자열 찾기 구간 StringBuilder compressedString = new StringBuilder(); - String oneUnit = s.substring(0, unit);//하나의 일치하는 스트링 단위 + String current = s.substring(0, unit); //하나의 일치하는 스트링 단위 int end = 0; + //문자열을 자르는 단위만큼 잘라서 다음 단위와 일치하는지 //일치한다면 그 수를 count해서 newString에 넣어준다 + for (int i = unit; i < s.length(); i += unit) { int count = 1; - while (isSame(i , s, unit, oneUnit)) { + while (isSame(i , s, unit, current)) { count++; i = i + unit; } - if (count > 1) {//count가 2이상일때 - check = true; - compressedString.append(Integer.toString(count));//newString에 count와 반복되는 string(one)을 넣는다 System.out.println(newString); - compressedString.append(oneUnit); - } else { - compressedString.append(oneUnit); + if (count > 1) { //count가 2이상일때 + compressedString.append(Integer.toString(count)); //newString에 count와 반복되는 string(one)을 넣는다 System.out.println(newString); } - if (i + unit > s.length()) {//범위 체크 + compressedString.append(current); + + if (i + unit > s.length()) { //범위 체크 end = i; break; } - oneUnit = s.substring(i, i + unit); - + current = s.substring(i, i + unit); } - if (end <= s.length()) {//만일 남은 unit단위 보다 작은 문자열이 남았을시 더해준다. + + if (end <= s.length()) { //만일 남은 unit단위 보다 작은 문자열이 남았을시 더해준다. compressedString.append(s.substring(end)); } return compressedString.length(); } + public static boolean isSame(int i , String s, int unit, String oneUnit){ return i <= s.length() - unit && s.substring(i, i + unit).equals(oneUnit); } -} +} \ No newline at end of file From f8841f5d2d6b39df6cfc554ae8037c9a27034744 Mon Sep 17 00:00:00 2001 From: jola7373 Date: Wed, 19 Jan 2022 20:58:01 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=EB=B8=94=EB=A1=9D=20=EC=9D=B4=EB=8F=99?= =?UTF-8?q?=ED=95=98=EA=B8=B0=20=ED=91=B8=EB=8A=94=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../part03/Q22_movingBlock/Main.java | 141 -------------- .../part03/Q22_movingBlock/MainFail.java | 138 ++++++++++++++ .../part03/Q22_movingBlock/Solution.java | 172 ++++++++++++++++++ 3 files changed, 310 insertions(+), 141 deletions(-) delete mode 100644 src/annmj/thisiscodingtest/part03/Q22_movingBlock/Main.java create mode 100644 src/jihye/thisiscodingtest/part03/Q22_movingBlock/MainFail.java create mode 100644 src/jihye/thisiscodingtest/part03/Q22_movingBlock/Solution.java diff --git a/src/annmj/thisiscodingtest/part03/Q22_movingBlock/Main.java b/src/annmj/thisiscodingtest/part03/Q22_movingBlock/Main.java deleted file mode 100644 index 1ac8c5c..0000000 --- a/src/annmj/thisiscodingtest/part03/Q22_movingBlock/Main.java +++ /dev/null @@ -1,141 +0,0 @@ -package annmj.thisiscodingtest.part03.Q22_movingBlock; - -import java.util.Arrays; -import java.util.LinkedList; -import java.util.Queue; -import java.util.Scanner; - -/* -(1,1)의 위치에서 (N,N)까지 이동하는데 걸리는 시간을 출력 - -무지가 이동취할 수 있는 행동 -1. 상,하,좌,우 이동 -2. 90도 돌기 first기준, second기준 으로 2가지 방향으로 가능 - - */ -class Node{ - - public Node(int xFirst, int yFirst, int xEnd, int yEnd, boolean ishorizontal) { - this.xFirst = xFirst; - this.yFirst = yFirst; - this.xEnd = xEnd; - this.yEnd = yEnd; - this.horizontal = ishorizontal; - } - - public int getxFirst() { - return xFirst; - } - - public void setxFirst(int xFirst) { - this.xFirst = xFirst; - } - - public int getyFirst() { - return yFirst; - } - - public void setyFirst(int yFirst) { - this.yFirst = yFirst; - } - - public int getxEnd() { - return xEnd; - } - - public void setxEnd(int xEnd) { - this.xEnd = xEnd; - } - - public int getyEnd() { - return yEnd; - } - - public void setyEnd(int yEnd) { - this.yEnd = yEnd; - } - public boolean isHorizontal() { - return ishorizontal; - } - - public void setisHorizontal(boolean horizontal) { - this.ishorizontal = horizontal; - } - - int xFirst; - int yFirst; - int xEnd; - int yEnd; - boolean ishorizontal; - - - -} -public class Main { - static int answer; - static int N; - - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - - } - public int solution(int[][] board) { - answer = 0; - N = board.length; - - bfs(board); - return answer; - } - public static void bfs(int[][] board){ - Queue queue = new LinkedList<>(); - boolean visited[][] = new boolean[board.length+1][board.length+1]; - Arrays.fill(visited[0], true); - - queue.add(new Node(1,1,1,2, true)); - while (!queue.isEmpty()){ - Node current = queue.poll(); - - int xFirst = current.getxFirst(); - int yFirst = current.getyFirst(); - int xEnd = current.getxEnd(); - int yEnd = current.getyEnd(); - boolean isHorizontal = current.isHorizontal(); - - for (int i = 0; i < 4; i++) { - - //이동시에 두가지 케이스로 나뉜다. - //가로일시, 세로일시 - if(isHorizontal){ //가로일때 - int nxFirst = xFirst + dx[i]; - int nyFirst = yFirst + dy[i]; - int nxEnd = xEnd + dx[i]; - int nyEnd = yEnd + dy[i]; - }else{ //세로일때 - int nxFirst = xFirst + dx[i]; - int nyFirst = yFirst + dy[i]; - int nxEnd = xEnd + dx[i]; - int nyEnd = yEnd + dy[i]; - } - - if(boundaryCheck(nxFirst,nyFirst,nxEnd, nyEnd) || visit[nx][ny] ){ - //90도 도는 로직 - - } - int diff = Math.max(arr[nx][ny], arr[x][y]) - Math.min(arr[nx][ny], arr[x][y]); - if(diff >= L && diff <= R) { - unionExist = true; - union[nx][ny] = count; - dfs(count, nx, ny); - } - } - } - } - public static void turn(){ - - } - //범위를 넘어가는지 확인하는 메서드 - public static boolean boundaryCheck(int nxFirst,int nyFirst,int nxEnd, int nyEnd){ - return nxFirst < 0 || nyFirst < 0 || nxFirst >= N || nyFirst >= N || - nxEnd < 0 || nyEnd < 0 || nxEnd >= N || nyEnd >= N; - } -} diff --git a/src/jihye/thisiscodingtest/part03/Q22_movingBlock/MainFail.java b/src/jihye/thisiscodingtest/part03/Q22_movingBlock/MainFail.java new file mode 100644 index 0000000..8e05dce --- /dev/null +++ b/src/jihye/thisiscodingtest/part03/Q22_movingBlock/MainFail.java @@ -0,0 +1,138 @@ +//package jihye.thisiscodingtest.part03.Q22_movingBlock; +// +//import java.util.Arrays; +//import java.util.LinkedList; +//import java.util.Queue; +//import java.util.Scanner; +// +///* +//(1,1)의 위치에서 (N,N)까지 이동하는데 걸리는 시간을 출력 +// +//무지가 이동취할 수 있는 행동 +//1. 상,하,좌,우 이동 +//2. 90도 돌기 first기준, second기준 으로 2가지 방향으로 가능 +// +// */ +//class Node{ +// +// public Node(int xFirst, int yFirst, int xEnd, int yEnd, boolean ishorizontal) { +// this.xFirst = xFirst; +// this.yFirst = yFirst; +// this.xEnd = xEnd; +// this.yEnd = yEnd; +// this.ishorizontal = ishorizontal; +// } +// +// public int getxFirst() { +// return xFirst; +// } +// +// public void setxFirst(int xFirst) { +// this.xFirst = xFirst; +// } +// +// public int getyFirst() { +// return yFirst; +// } +// +// public void setyFirst(int yFirst) { +// this.yFirst = yFirst; +// } +// +// public int getxEnd() { +// return xEnd; +// } +// +// public void setxEnd(int xEnd) { +// this.xEnd = xEnd; +// } +// +// public int getyEnd() { +// return yEnd; +// } +// +// public void setyEnd(int yEnd) { +// this.yEnd = yEnd; +// } +// public boolean isHorizontal() { +// return ishorizontal; +// } +// +// public void setisHorizontal(boolean horizontal) { +// this.ishorizontal = horizontal; +// } +// +// int xFirst; +// int yFirst; +// int xEnd; +// int yEnd; +// boolean ishorizontal; +// +// +// +//} +//public class MainFail { +// static int answer; +// static int N; +// static int dx[] = {-1,1,0,0}; +// static int dy[] = {0,0,-1,1}; +// +// public static void main(String[] args) { +// Scanner sc = new Scanner(System.in); +// +// } +// public int solution(int[][] board) { +// answer = 0; +// N = board.length; +// +// bfs(board); +// return answer; +// } +// public static void bfs(int[][] board){ +// Queue queue = new LinkedList<>(); +// boolean visited[][] = new boolean[board.length+1][board.length+1]; +// Arrays.fill(visited[0], true); +// +// queue.add(new Node(1,1,1,2, true)); +// while (!queue.isEmpty()){ +// Node current = queue.poll(); +// +// int xFirst = current.getxFirst(); +// int yFirst = current.getyFirst(); +// int xEnd = current.getxEnd(); +// int yEnd = current.getyEnd(); +// boolean isHorizontal = current.isHorizontal(); +// +// for (int i = 0; i < 4; i++) { +// +// //이동시에 두가지 케이스로 나뉜다. +// //가로일시, 세로일시 +// if(isHorizontal){ //가로일때 +// int nxFirst = xFirst + dx[i]; +// int nyFirst = yFirst + dy[i]; +// int nxEnd = xEnd + dx[i]; +// int nyEnd = yEnd + dy[i]; +// }else{ //세로일때 +// int nxFirst = xFirst + dx[i]; +// int nyFirst = yFirst + dy[i]; +// int nxEnd = xEnd + dx[i]; +// int nyEnd = yEnd + dy[i]; +// } +// +// if(boundaryCheck(nxFirst,nyFirst,nxEnd, nyEnd) || visit[nx][ny] ){ +// //90도 도는 로직 +// +// } +// +// } +// } +// } +// public static void turn(){ +// +// } +// //범위를 넘어가는지 확인하는 메서드 +// public static boolean boundaryCheck(int nxFirst,int nyFirst,int nxEnd, int nyEnd){ +// return nxFirst < 0 || nyFirst < 0 || nxFirst >= N || nyFirst >= N || +// nxEnd < 0 || nyEnd < 0 || nxEnd >= N || nyEnd >= N; +// } +//} diff --git a/src/jihye/thisiscodingtest/part03/Q22_movingBlock/Solution.java b/src/jihye/thisiscodingtest/part03/Q22_movingBlock/Solution.java new file mode 100644 index 0000000..95df82d --- /dev/null +++ b/src/jihye/thisiscodingtest/part03/Q22_movingBlock/Solution.java @@ -0,0 +1,172 @@ +//package jihye.thisiscodingtest.part03.Q22_movingBlock; +// +//import java.util.Arrays; +//import java.util.LinkedList; +//import java.util.Queue; +//import java.util.Scanner; +// +///* +//(1,1)의 위치에서 (N,N)까지 이동하는데 걸리는 시간을 출력 +// +//무지가 이동취할 수 있는 행동 +//1. 상,하,좌,우 이동 +//2. 90도 돌기 first기준, second기준 으로 2가지 방향으로 가능 +// +// */ +//class Node { +// +// public Node(int xFirst, int yFirst, int xEnd, int yEnd) { +// this.xFirst = xFirst; +// this.yFirst = yFirst; +// this.xEnd = xEnd; +// this.yEnd = yEnd; +// } +// +// public int getxFirst() { +// return xFirst; +// } +// +// public void setxFirst(int xFirst) { +// this.xFirst = xFirst; +// } +// +// public int getyFirst() { +// return yFirst; +// } +// +// public void setyFirst(int yFirst) { +// this.yFirst = yFirst; +// } +// +// public int getxEnd() { +// return xEnd; +// } +// +// public void setxEnd(int xEnd) { +// this.xEnd = xEnd; +// } +// +// public int getyEnd() { +// return yEnd; +// } +// +// public void setyEnd(int yEnd) { +// this.yEnd = yEnd; +// } +// +// public boolean isHorizontal() { +// return ishorizontal; +// } +// +// public void setisHorizontal(boolean horizontal) { +// this.ishorizontal = horizontal; +// } +// +// int xFirst; +// int yFirst; +// int xEnd; +// int yEnd; +// boolean ishorizontal; +//} +// +//public class Solution { +// static int answer; +// static int N; +// static int dx[] = {-1, 1, 0, 0}; +// static int dy[] = {0, 0, -1, 1}; +// +// public static void main(String[] args) { +// Scanner sc = new Scanner(System.in); +// int[][] board = {{0, 0, 0, 1, 1}, {0, 0, 0, 1, 0}, {0, 1, 0, 1, 1}, +// {1, 1, 0, 0, 1}, {0, 0, 0, 0, 0}}; +// System.out.println(solution(board)); +// } +// +// public static int solution(int[][] board) { +// answer = 0; +// N = board.length; +// +// bfs(board); +// return answer; +// } +// +// public static void bfs(int[][] board) { +// Queue queue = new LinkedList<>(); +// boolean visited[][][] = new boolean[board.length + 1][board.length + 1][2]; +// Arrays.fill(visited[0], true); +// int[] rotate = {-1, 1}; +// +// queue.add(new Node(1, 1, 1, 2)); +// while (!queue.isEmpty()) { +// Node current = queue.poll(); +// +// int xFirst = current.getxFirst(); +// int yFirst = current.getyFirst(); +// int xEnd = current.getxEnd(); +// int yEnd = current.getyEnd(); +// boolean isHorizontal = current.isHorizontal(); +// +// if (hasArrived(xFirst, yFirst, xEnd, yEnd)) { +// return; +// } +// +// //상하좌우 이동 +// for (int i = 0; i < 4; i++) { +// int nxFirst = xFirst + dx[i]; +// int nyFirst = yFirst + dy[i]; +// int nxEnd = xEnd + dx[i]; +// int nyEnd = yEnd + dy[i]; +// +// if ((board[nxFirst][nyFirst] == 0) && (board[nxEnd][nyEnd] == 0)) { +//// if(!(visited[nxFirst][nyFirst]) && (visited[nxEnd][nyEnd]))//빙문 확인후 +// queue.add(new Node(nxFirst, nyFirst, nxEnd, nyEnd)); +// queue.add(new Node(nxEnd, nyEnd, nxFirst, nyFirst)); +// } +// } +// +// //가로 회전 +// if (xFirst == xEnd) { +// for (int r : rotate) { +// int nxFirst = xFirst + r; +// int nyFirst = yFirst; +// int nxEnd = xEnd + r; +// int nyEnd = yEnd; +// +// if ((board[nxFirst][nyFirst] == 0) && (board[nxEnd][nyEnd] == 0)) { +// !(visited[nxFirst][nyFirst]) && (visited[nxEnd][nyEnd]) +// queue.add(new Node(nxFirst, nyFirst, nxEnd, nyEnd)); +// queue.add(new Node(nxEnd, nyEnd, nxFirst, nyFirst)); +// } +// } +// } +// +// //세로 회전 +// if (yFirst == yEnd) { +// for (int r : rotate) { +// int nxFirst = xFirst; +// int nyFirst = yFirst + r; +// int nxEnd = xEnd; +// int nyEnd = yEnd + r; +// +// if (!(visited[nxFirst][nyFirst]) && (visited[nxEnd][nyEnd])) { +// queue.add(new Node(nxFirst, nyFirst, nxEnd, nyEnd)); +// queue.add(new Node(nxEnd, nyEnd, nxFirst, nyFirst)); +// } +// } +// } +// answer++; +// } +// } +// +// +// //범위를 넘어가는지 확인하는 메서드 +// public static boolean boundaryCheck(int nxFirst, int nyFirst, int nxEnd, int nyEnd) { +// return nxFirst < 0 || nyFirst < 0 || nxFirst >= N || nyFirst >= N || +// nxEnd < 0 || nyEnd < 0 || nxEnd >= N || nyEnd >= N; +// } +// +// //도착했는지 확인 +// public static boolean hasArrived(int xFirst, int yFirst, int xEnd, int yEnd) { +// return (xFirst == N && yFirst == N) || (xEnd == N && yEnd == N); +// } +//}