diff --git "a/06\354\233\224/3\354\243\274\354\260\250/[LCD] Length of Last Word/Min.java" "b/06\354\233\224/3\354\243\274\354\260\250/[LCD] Length of Last Word/Min.java" new file mode 100644 index 0000000..93b42ef --- /dev/null +++ "b/06\354\233\224/3\354\243\274\354\260\250/[LCD] Length of Last Word/Min.java" @@ -0,0 +1,13 @@ +import java.util.*; + +class Min { + public int lengthOfLastWord(String s) { + StringTokenizer str = new StringTokenizer(s); + List list = new ArrayList<>(); + while(str.hasMoreTokens()) { + list.add(str.nextToken()); + } + + return list.get(list.size() - 1).length(); + } +} \ No newline at end of file diff --git "a/06\354\233\224/3\354\243\274\354\260\250/[LCD] Plus One/Min.java" "b/06\354\233\224/3\354\243\274\354\260\250/[LCD] Plus One/Min.java" new file mode 100644 index 0000000..0aa2345 --- /dev/null +++ "b/06\354\233\224/3\354\243\274\354\260\250/[LCD] Plus One/Min.java" @@ -0,0 +1,15 @@ +class Min { + public int[] plusOne(int[] digits) { + for (int i = digits.length - 1; i >= 0; i--) { + if (digits[i] < 9) { + digits[i]++; + return digits; + } + digits[i] = 0; + } + + int[] answer = new int[digits.length + 1]; + answer[0] = 1; + return answer; + } +} \ No newline at end of file diff --git "a/06\354\233\224/3\354\243\274\354\260\250/[PRGRMS] \353\266\210\353\237\211 \354\202\254\354\232\251\354\236\220/Min.java" "b/06\354\233\224/3\354\243\274\354\260\250/[PRGRMS] \353\266\210\353\237\211 \354\202\254\354\232\251\354\236\220/Min.java" new file mode 100644 index 0000000..ede076d --- /dev/null +++ "b/06\354\233\224/3\354\243\274\354\260\250/[PRGRMS] \353\266\210\353\237\211 \354\202\254\354\232\251\354\236\220/Min.java" @@ -0,0 +1,58 @@ +import java.util.*; + +class Min { + static List> list; + static boolean[] visited; + static HashSet> hs; + + public int solution(String[] user_id, String[] banned_id) { + int answer = 0; + list = new ArrayList<>(); + visited = new boolean[user_id.length]; + hs = new HashSet<>(); + + for(String b : banned_id) { + List tmp = new ArrayList<>(); + for(int i = 0; i < user_id.length; i++) { + if(isBad(user_id[i], b)) { + tmp.add(i); + } + } + list.add(tmp); + } + + dfs(0, banned_id.length); + + answer = hs.size(); + return answer; + } + + private static boolean isBad(String user, String ban) { + if(user.length() != ban.length()) return false; + + for(int i = 0; i < user.length(); i++) { + if(ban.charAt(i) == '*') continue; + if(user.charAt(i) != ban.charAt(i)) return false; + } + return true; + } + + private void dfs(int current, int depth) { + if(current == depth) { + HashSet tmp = new HashSet<>(); + for(int i = 0; i < visited.length; i++) { + if(visited[i]) tmp.add(i); + } + hs.add(tmp); + return; + } + + for(int n : list.get(current)) { + if(!visited[n]) { + visited[n] = true; + dfs(current + 1, depth); + visited[n] = false; + } + } + } +} \ No newline at end of file