문제 설명
해결과정
Solution.java
class Solution {
public int[] solution(String[] keymap, String[] targets) {
int[] answer = new int[targets.length];
int index = 0;
// 작성해야하는 문자열 하나 가져오기
for(String target : targets) {
// 문자열에서 문자 하나씩 체크하기
for(int i = 0; i < target.length(); i++) {
// 눌러야하는 버튼 수의 최소값 문자열의 길이가 100이니 넉넉하게 200준비
int min = 200;
// 문자열의 i번째 문자 가져오기
char c = target.charAt(i);
// 키패드의 규칙 가져오기
for(String key : keymap) {
// 키패드의 규칙의 i번째 문자가 포함되어있는지 확인
if(key.contains(""+c)){
// 이전에 눌러야했던 횟수와 비교해서 더 작은 횟수를 가져오기
min = min < (key.indexOf(c)+1) ? min : (key.indexOf(c)+1);
}
}
// 눌러야 하는 최소값이 초기값과 같다면 없다는 뜻
if(min == 200) {
answer[index] = -1;
break;
} else{
answer[index] += min;
}
}
index++;
}
return answer;
}
}
Java
복사