diff --git "a/lkhyun/202511/04 PGM Lv2 [3\354\260\250] \354\225\225\354\266\225.md" "b/lkhyun/202511/04 PGM Lv2 [3\354\260\250] \354\225\225\354\266\225.md" new file mode 100644 index 00000000..3778d8eb --- /dev/null +++ "b/lkhyun/202511/04 PGM Lv2 [3\354\260\250] \354\225\225\354\266\225.md" @@ -0,0 +1,34 @@ +```java +import java.util.*; + +class Solution { + public int[] solution(String msg) { + List answer = new ArrayList<>(); + Map dictionary = new HashMap<>(); + for(int i = 1; i <= 26; i++){ + dictionary.put(String.valueOf((char)(64 + i)), i); + } + int dictionaryIdx = 27; + + int cur = 0; + while(cur < msg.length()){ + String w = String.valueOf(msg.charAt(cur)); + + while(cur + w.length() < msg.length() && + dictionary.containsKey(w + msg.charAt(cur + w.length()))){ + w = w + msg.charAt(cur + w.length()); + } + answer.add(dictionary.get(w)); + + if(cur + w.length() < msg.length()){ + String wc = w + msg.charAt(cur + w.length()); + dictionary.put(wc, dictionaryIdx++); + } + + cur += w.length(); + } + + return answer.stream().mapToInt(Integer::intValue).toArray(); + } +} +```