import java.util.ArrayList;
import java.util.HashMap;
class Solution {
public static void main(String[] args) {
String msg = "KAKAO";
solution(msg);
}
public static int[] solution(String msg) {
ArrayList<Integer> ans = new ArrayList<Integer>();
HashMap<String, Integer> map = new HashMap<String,Integer>();
int count = 0;
String[] alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
for(String s : alpha){
count++;
map.put(s,count);
}
for(int i =0; i< msg.length(); i++){
int cnt = 1;
while(i+cnt <= msg.length() && map.containsKey(msg.substring(i,i+cnt))){
cnt++;
}
if(i+cnt > msg.length()){
ans.add(map.get(msg.substring(i)));
break;
}
ans.add(map.get(msg.substring(i,i+cnt-1)));
count++;
map.put(msg.substring(i,i+cnt),count);
if(cnt>1){
i += cnt-2;
}
}
int[] answer = new int [ans.size()];
for(int i = 0; i < ans.size(); i++){
answer[i] = ans.get(i);
}
return answer;
}
}
너무 for문 많이 돌아서 i += cnt-2 하는 부분 포함해서 여기 저기 검색해서 도움 받음...
ABCD 해주는 부분은 char 사용해서 삽입해도 됬을 뻔 했구나...!
SET 쓰려다가 다들 LIST나 HASHMAP 쓰길래 바꿈 ㅠ
댓글
댓글 쓰기