diff --git a/Basic_Of_Algorithm/src/ssafy_avanced_study/no_1226.java b/Basic_Of_Algorithm/src/ssafy_avanced_study/no_1226.java new file mode 100644 index 0000000..69eace5 --- /dev/null +++ b/Basic_Of_Algorithm/src/ssafy_avanced_study/no_1226.java @@ -0,0 +1,96 @@ +package ssafy_avanced_study; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.util.Queue; +import java.util.LinkedList; + +public class no_1226 { + + public static void main(String[] args) throws Exception { + + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + int T; + T= Integer.parseInt(br.readLine()); + /* + 여러 개의 테스트 케이스가 주어지므로, 각각을 처리합니다. + */ + + for(int test_case = 1; test_case <= T; test_case++) + { + + int[][]map = new int[16][16]; + + Queue q = new LinkedList<>(); + + q.add(new int[] {0,0}); + + for(int i=0;i<16;i++) { + String str =br.readLine(); + for(int j=0;j<16;j++) { + map[i][j] = Integer.parseInt(""+str.charAt(j)); + } + } + + int[][]temp = new int[16][16]; + temp[0][0] = 0; + int [][] move = {{1,0},{0,1},{-1,0},{0,-1}}; + + int answer = Integer.MAX_VALUE; + int answerI = 0; + int answerJ = 0; + + for(int i=0;i<16;i++) { + for(int j=0;j<16;j++) { + if(map[i][j]==2) { + temp[i][j] = 0; + q.add(new int[] {i,j}); + }else if(map[i][j]==3) { + answerI = i; + answerJ = j; + } + + } + } + + System.out.println(q.poll()[0]); + System.out.println(q.poll()[1]); + + while(!q.isEmpty()) { + + int [] cur = q.poll(); + int i = cur[0]; + int j = cur[1]; + + for(int d=0;d<4;d++) { + + int newI = i + move[d][0]; + int newJ = j + move[d][1]; + + + if(newI<0||newJ<0||15 q = new LinkedList<>(); + + q.add(new int[] {0,0}); + for(int i=0;isize-2 && j>size-2) { + int answer = Integer.MAX_VALUE; - answer = Math.min(answer, now); - return; - } - - for(int d=0;d<4;d++) { - - int newI = i + move[d][0]; - int newJ = j + move[d][1]; + while(!q.isEmpty()) { + + int [] cur = q.poll(); + int i = cur[0]; + int j = cur[1]; + + for(int d=0;d<4;d++) { + + int newI = i + move[d][0]; + int newJ = j + move[d][1]; + + + if(newI<0||newJ<0||size-1