diff --git a/Basic_Of_Algorithm/src/Today_22_06_09/no_1.java b/Basic_Of_Algorithm/src/Today_22_06_09/no_1.java new file mode 100644 index 0000000..35d3f24 --- /dev/null +++ b/Basic_Of_Algorithm/src/Today_22_06_09/no_1.java @@ -0,0 +1,97 @@ +package Today_22_06_09; + +import java.util.ArrayList; +import java.util.Collections; + +public class no_1 { + + static int[]apeach; + static int[]ryan; + static boolean[]visited = new boolean[3]; + static char[]op = {'*','+','-'}; + static int max = 0; + static int N; + static ArrayList answerList = new ArrayList<>(); + + public static void main(String[] args) { + + int[] info = {2,1,1,1,0,0,0,0,0,0,0}; + int n = 5; + + N = n; + apeach = info.clone(); + + ryan = new int[apeach.length]; + + dfs(0,0); + + int[]answer; + + if(answerList.isEmpty()) { + answer = new int [] {-1}; + }else { + + Collections.sort(answerList,(o1,o2)-> { + + for(int i=10;i>-1;i--) { + if(o1[i]!=o2[i]) return o1[i]-o2[i]; + } + + return 0; + }); + + + answer = new int[apeach.length]; + + for(int i=0;iapeach[i]) r += 10-i; + else a += 10-i; + + } + + if(r>a) { + int diff = r - a; + if(diff>max) { + max = diff; + answerList.clear(); + answerList.add(ryan.clone()); + }else if(diff==max) { + answerList.add(ryan.clone()); + } + } + + + return; + } + + + + for(int i=0;i<11;i++) { + ryan[i]++; + dfs(i,count+1); + ryan[i]--; + + } + + } +} diff --git a/Basic_Of_Algorithm/src/Today_22_06_09/no_2.java b/Basic_Of_Algorithm/src/Today_22_06_09/no_2.java new file mode 100644 index 0000000..34f9387 --- /dev/null +++ b/Basic_Of_Algorithm/src/Today_22_06_09/no_2.java @@ -0,0 +1,72 @@ +package Today_22_06_09; + +public class no_2 { + + static char[]member = {'A','C','F','J','M','N','R','T'}; + static int answer = 0; + static boolean[ ] visited; + static String[]d; + + public static void main(String[] args) { + + int n = 2; + + String[]data = {"N~F=0", "R~T>2"}; + + d = data.clone(); + + visited = new boolean[member.length]; + + dfs(""); + + System.out.println(answer); + + } + + static boolean check(String now) { + + for(String str : d) { + + int pos1 = now.indexOf(str.charAt(0)); + int pos2 = now.indexOf(str.charAt(2)); + char op = str.charAt(3); + int idx = str.charAt(4)-'0'; + + if(op=='=') { + if(!(Math.abs(pos1-pos2)==idx+1)) return false; + }else if(op=='>') { + if(!(Math.abs(pos1-pos2)>idx+1)) return false; + }else if(op=='=') { + if(!(Math.abs(pos1-pos2) q = new LinkedList<>(); - - int [][] move = {{0,1},{1,0},{0,-1},{-1,0}}; - - q.add(new int[]{0,0}); - - while(!q.isEmpty()) { - - int [] cur = q.poll(); - - int cI = cur[0]; - int cJ = cur[1]; - - for(int d=0;d<4;d++) { - - int newI = cI + move[d][0]; - int newJ = cJ + move[d][1]; - - - if(newI<0||newJ<0||maps.length-1 q = new LinkedList<>(); - - q.add(new int[] {0,0}); - - int[][]move = {{0,1},{1,0},{0,-1},{-1,0}}; - - 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||maps.length-1