import java.util.*;
class Solution {
public int[] solution(String s) {
Map<String, Integer> map = new HashMap<>(); //사전
for(char c = 'A'; c<='Z'; c++){
map.put(String.valueOf(c), c-'A'+1);
}
List<Integer> list = new ArrayList<>(); // 색인 번호를 담을 리스트
StringBuilder w = new StringBuilder(); // 검색할 문자열
int idx= 27; //마지막 색인 번호가 27
for(char c : s.toCharArray()){
w.append(c);
if(!map.containsKey(w.toString())){ // 사전에 없으면
list.add(map.get(w.substring(0, w.length()-1))); // w에 해당하는 색인 번호 추가
map.put(w.toString(),idx); // 사전에 w+c 추가
idx++;
w = new StringBuilder(String.valueOf(c)); // w 초기화
}
}
list.add(map.get(w.toString()));
return list.stream().mapToInt(Integer::intValue).toArray();
}
}