diff --git "a/Programmers/\354\227\260\354\212\265\353\254\270\354\240\234/LEVEL1/\353\214\200\354\266\251 \353\247\214\353\223\240 \354\236\220\355\214\220/Sanghoo.java" "b/Programmers/\354\227\260\354\212\265\353\254\270\354\240\234/LEVEL1/\353\214\200\354\266\251 \353\247\214\353\223\240 \354\236\220\355\214\220/Sanghoo.java" new file mode 100644 index 0000000..9ca34e8 --- /dev/null +++ "b/Programmers/\354\227\260\354\212\265\353\254\270\354\240\234/LEVEL1/\353\214\200\354\266\251 \353\247\214\353\223\240 \354\236\220\355\214\220/Sanghoo.java" @@ -0,0 +1,46 @@ +package programmers.대충만든자판; + +import java.util.HashMap; +import java.util.Map; + +public class Sanghoo { + public static void main(String[] args) { + String[] keyMap = {"BC"}; + String[] targets = {"AC", "BC"}; + + solution(keyMap, targets); + } + + public static int[] solution(String[] keymap, String[] targets) { + int[] answer = new int[targets.length]; + Map minKeyMap = new HashMap<>(); + + // keymap을 역순으로 돌아, Map에 각 키(Key)를 최소한으로 나타낼 수 있는 개수(Value)를 저장해두고 사용한다. + for (String key : keymap) { + char[] chars = key.toCharArray(); + + for (int j = chars.length - 1; j >= 0; j--) { + int value = minKeyMap.get(chars[j]) == null ? Integer.MAX_VALUE : minKeyMap.get(chars[j]); + minKeyMap.put(chars[j], Math.min(value, j + 1)); + } + } + + for (int i = 0; i < targets.length; i++) { + int count = 0; + for (char ch : targets[i].toCharArray()) { + Integer getVal = minKeyMap.get(ch); + + // target을 만들 수 없을 경우 -1을 저장하고 break + if (getVal == null) { + count = -1; + break; + } + count += getVal; + } + answer[i] = count; + } + + return answer; + } + +} diff --git "a/Programmers/\354\227\260\354\212\265\353\254\270\354\240\234/LEVEL2/\354\210\253\354\236\220\354\235\230 \355\221\234\355\230\204/Sanghoo.java" "b/Programmers/\354\227\260\354\212\265\353\254\270\354\240\234/LEVEL2/\354\210\253\354\236\220\354\235\230 \355\221\234\355\230\204/Sanghoo.java" new file mode 100644 index 0000000..0f0f6aa --- /dev/null +++ "b/Programmers/\354\227\260\354\212\265\353\254\270\354\240\234/LEVEL2/\354\210\253\354\236\220\354\235\230 \355\221\234\355\230\204/Sanghoo.java" @@ -0,0 +1,29 @@ +package Programmers.숫자의표현; + +public class Sanghoo { + + public static void main(String[] args) { + solution(15); + } + + public static int solution(int n) { + int answer = 1; + + for (int i = 1; i < n; i++) { + int sum = i; + + for (int j = i + 1; j < n; j++) { + sum += j; + + if (sum > n) break; + if (sum == n) { + answer++; + break; + } + } + } + + return answer; + } + +}