알고리즘
프로그래머스 - 대충 만든 자판
계양 꿀주먹
2024. 5. 7. 19:08
class Solution {
public int[] solution(String[] keymap, String[] targets) {
int[] answer = new int[targets.length];
for(int i = 0; i < targets.length; i++) {
int sum = 0; // 누른 수
boolean check = false; // target의 단어가 keymap에 존재하는지 체크
for(char c : targets[i].toCharArray()) {
int min = 101; // 각 targt의 char마다 최소 누른 수
for(String key : keymap) {
for(int j = 0; j < key.length(); j++) {
if(c == key.charAt(j)) {
min = Math.min(min, j + 1); // j는 0 , 클릭은 1부터 시작
break;
}
}
}
if(min == 101) check = true;
sum += min;
}
if(check) answer[i] = -1;
else answer[i] = sum;
}
return answer;
}
}
각 targes에서 각 문자열의 문자를 구하고, keymap에서 배열의 원소마다 비교하여 charAt을 이용해 최소 클릭 횟수를 구하여 sum에 더해 키를 누른 횟수를 구했습니다.
만약 문자가 keymap에 포함되어 있지않다면 -1를 반환해야하므로, boolean 타입을 이용하여 체크해 이를 확인했습니다.