알고리즘 코드카타
Queries Quality and Percentage
SELECT
query_name,
ROUND(AVG(rating / position), 2) AS quality,
ROUND(SUM(CASE WHEN rating < 3 THEN 1 ELSE 0 END) * 100 / COUNT(*), 2) AS poor_query_percentage
FROM Queries
WHERE query_name IS NOT NULL
GROUP BY query_name;
대충 만든 자판
import java.util.Arrays;
class Solution {
public int[] solution(String[] keymap, String[] targets) {
int[] answer = new int[targets.length];
char[][] keys = new char[keymap.length][];
for (int i = 0; i < keymap.length; i++) {
keys[i] = new char[keymap[i].length()];
keys[i] = keymap[i].toCharArray();
}
for(int i = 0; i < targets.length; i++) {
answer[i] = 0;
for(char t: targets[i].toCharArray()){
if (findTarget(keys,t) == -1){
answer[i] = -1;
break;
}else {
answer[i] += findTarget(keys,t);
}
}
}
return answer;
}
public int findTarget(char[][] keymap, char target) {
int[] indexes = new int[keymap.length];
for (int i = 0; i < keymap.length; i++) {
indexes[i] = 200;
for (int j = 0; j < keymap[i].length; j++) {
if (keymap[i][j] == target) {
indexes[i] = j + 1;
break;
}
}
}
int index = Arrays.stream(indexes).min().getAsInt();
if (index == 200){
return -1;
} else {
return index;
}
}
}