import java.util.ArrayList;
public class Compression {
public int[] solution(String msg) {
ArrayList<String> dictionary = new ArrayList<>();
ArrayList<Integer> result = new ArrayList<>();
StringBuilder sb = new StringBuilder(msg);
for (char i = 'A'; i <= 'Z'; i++) {
dictionary.add(i + "");
}
while (sb.length() != 0) {
for (int i = dictionary.size() - 1; i >= 0; i--) {
String str = dictionary.get(i);
if (sb.toString().startsWith(str)) {
result.add(dictionary.indexOf(str) + 1);
sb.delete(0, str.length());
if (sb.length() != 0) {
dictionary.add(str + sb.charAt(0) + "");
}
break;
}
}
}
return result.stream().mapToInt(i -> i.intValue()).toArray();
}
}
String 클래스의 startsWith() 메소드 활용 - 접두사 찾는 메소드
startsWith() : 접두사
endsWith() : 접미사