Geisha 2024. 6. 30. 23:09

 

 

Map의 containsKey를 이용하여 탐색 속도를 최소화 하고자 하였다. 

import java.util.*;

class Solution {
    public ArrayList<Integer> solution(String msg) {
        ArrayList<Integer> answer = new ArrayList<>();
        HashMap<String,Integer> dic = new HashMap<>();

        for(int i = 0 ; i < 26; i++){
            dic.put(String.valueOf((char)('A'+i)),i+1);
        }
        String a = "";
        int dicIndex=27;
        for(int i = 0 ; i<msg.length(); i++){
            String c = String.valueOf(msg.charAt(i));
            if(dic.containsKey(a+c)){
                a+=c;
                continue;
            }
            dic.put(a+c,dicIndex++);
            answer.add(dic.get(a));
            a=c;

        }
        if (!a.equals("")) {
            answer.add(dic.get(a));
        }
        return answer;
    }
}

String

-valueOf(c) : c를 String으로 변환