하나의 키에 할당된 문자들이 순서대로 담긴 문자열 배열 keymap과
입력하려는 문자열이 담긴 배열 targets가 주어질때
하나의 target을 입력하기 위해 키를 총 몇번을 눌러야하는지를 배열로 반환
public int[] solution(String[] keymap, String[] targets) {
int[] answer = new int[targets.length];
Map<Character,Integer> map = new HashMap<Character, Integer>();
for (int i = 0; i < keymap.length; i++) {
for (int j = 0; j < keymap[i].length(); j++) {
if(map.getOrDefault(keymap[i].charAt(j), 0)==0||map.getOrDefault(keymap[i].charAt(j), 0)>j+1)
map.put(keymap[i].charAt(j), j+1);
}
}
for (int i = 0; i < targets.length; i++) {
int repeat = 0;
for (int j = 0; j < targets[i].length(); j++) {
int temp = map.getOrDefault(targets[i].charAt(j),-1);
if(temp!=-1)
repeat+=temp;
else {
repeat=-1;
break;
}
}
answer[i] = repeat;
}
return answer;
}
map에 입력하려는 문자에 대한 키의 최소 입력횟수를 저장
만약 다른 키에서 동일한 문자의 최소 입력횟수가 더 적을 경우 적은 횟수를 저장
'Java > Coding Test' 카테고리의 다른 글
실패율 문제 풀이 (0) | 2023.10.01 |
---|---|
문자열 나누기 문제 풀이 (1) | 2023.10.01 |
모의고사 문제 풀이 (0) | 2023.09.30 |
개인정보 수집 유효 기간 문제 풀이 (0) | 2023.09.28 |
숫자 짝궁 문제 풀이 (1) | 2023.09.28 |