문제
문제점 해결
HashMap을 사용하여 알파벳 A~Z까지를 key값으로, 1~26까지를 value값으로 map에 저장하였고, 입력으로 들어오는 단어를 key값으로 사용하여 색인번호(value)를 출력하였다.
풀이
import java.util.*;
class Solution {
public int[] solution(String msg) {
Map<String, Integer> map = new HashMap<>();
for (char i = 'A', num = '1'; i <= 'Z'; i++, num++)
map.put(String.valueOf(i), num - '0');
char[] tmp = msg.toCharArray();
List<Integer> result = new ArrayList<Integer>();
String now = "", next = "";
for (int i = 0; i < tmp.length; i++) {
now += tmp[i];
if(i == tmp.length-1) {
result.add(map.get(now));
break;
}
for (int j = i+1; j < tmp.length; j++) {
next = String.valueOf(tmp[j]);
if(map.get(now+next) == null) {
map.put(now+next, map.size()+1);
result.add(map.get(now));
now = "";
break;
}else break;
}
}
int[] answer = new int[result.size()];
for (int i = 0; i < result.size(); i++) answer[i] = result.get(i);
return answer;
}
}