diff --git a/Basic_Of_Algorithm/src/Today_22_05_15/bfs.java b/Basic_Of_Algorithm/src/Today_22_05_15/bfs.java new file mode 100644 index 0000000..949ae98 --- /dev/null +++ b/Basic_Of_Algorithm/src/Today_22_05_15/bfs.java @@ -0,0 +1,57 @@ +package Today_22_05_15; + +import java.util.LinkedList; +import java.util.Queue; + +public class bfs { + + public static void main(String[] args) { + + int sb = 5; + int bro = 17; + + + + Queue q = new LinkedList<>(); + + int[] position = new int[100001]; + + + position[sb] = 0; + + q.add(sb); + + while(!q.isEmpty()) { + + + int p = q.poll(); + + if(position[bro]!=0) break; + + if(position[p-1] ==0 && p-1>=0) { + position[p-1] = position[p] + 1; + q.add(p-1); + } + + if(position[p+1] ==0 && p+1<=position.length) { + position[p+1] = position[p] + 1; + q.add(p+1); + + } + if(position[p*2] ==0 && p*2<=position.length) { + position[p*2] = position[p] + 1; + q.add(p*2); + + } + + + } + + if(sb==bro) position[bro] = 0; + System.out.println(position[bro] + " 초"); + + + + } + +} diff --git a/Basic_Of_Algorithm/src/Today_22_05_16/test.java b/Basic_Of_Algorithm/src/Today_22_05_16/test.java new file mode 100644 index 0000000..f01b73d --- /dev/null +++ b/Basic_Of_Algorithm/src/Today_22_05_16/test.java @@ -0,0 +1,51 @@ +package Today_22_05_16; + +import java.util.LinkedList; +import java.util.Queue; + +public class test { + + public static void main(String[] args) { + + int a = 5; + int b = 17; + + int[]visited = new int[10001]; + + + Queue q = new LinkedList<>(); + + visited[a] = 0; + + q.add(a); + + while(!q.isEmpty()) { + + int now = q.poll(); + + if(visited[b]!=0 || now >=10000) break; + + if(now-1>=0 && visited[now-1] ==0) { + visited[now-1] = visited[now] + 1; + q.add(now-1); + } + + if(now+1<=10000 && visited[now+1] ==0) { + visited[now+1] = visited[now] + 1; + q.add(now+1); + } + + if(now*2<=10000 && visited[now*2] ==0) { + visited[now*2] = visited[now] + 1; + q.add(now*2); + } + + } + + + + System.out.println(visited[b]); + + } + +} diff --git a/Basic_Of_Algorithm/src/Today_22_05_16/test2.java b/Basic_Of_Algorithm/src/Today_22_05_16/test2.java new file mode 100644 index 0000000..6b7cce6 --- /dev/null +++ b/Basic_Of_Algorithm/src/Today_22_05_16/test2.java @@ -0,0 +1,56 @@ +package Today_22_05_16; + +import java.util.Queue; +import java.util.LinkedList; + +public class test2 { + + public static void main(String[] args) { + + + int [][] map = {{1,0,1,1,1},{1,0,1,0,1},{1,0,1,1,1},{1,1,1,0,1},{0,0,0,0,1}}; + + + Queue q = new LinkedList<>(); + + int [][] temp = new int[map.length][map[0].length]; + + temp[0][0] = 1; + + q.add(new int[] {0,0}); + + int [][] move = {{0,1},{1,0},{0,-1},{-1,0}}; + + while(!q.isEmpty()) { + + int []c = q.poll(); + + int ci = c[0]; + int cj = c[1]; + + for(int d=0;d<4;d++) { + + int ni = ci + move[d][0]; + int nj = cj + move[d][1]; + + if(ni<0||nj<0||map.length-1