function solution(keymap, targets) {
const answer = []; // 결과를 저장할 배열
const map = new Map(); // 각 키의 최소 누르기 횟수를 저장할 맵
// keymap 배열을 반복하면서 각 키의 최소 누르기 횟수를 맵에 저장
for (const key of keymap) {
for (let i = 0; i < key.length; i++) {
// 현재 키가 맵에 없거나, 현재 키의 누르기 횟수가 기존 값보다 작으면 변경
if (!map.has(key[i]) || i + 1 < map.get(key[i])) map.set(key[i], i + 1);
}
}
// targets 배열을 반복하면서 각 타겟 문자열의 최소 누르기 횟수를 계산
for (const target of targets) {
let count = 0; // 타겟 문자열의 총 누르기 횟수를 저장할 변수
for (let i = 0; i < target.length; i++) {
// 현재 문자가 맵에 존재하면 해당 문자의 누르기 횟수를 더함
count += map.get(target[i]);
}
// count 값이 0이면 타겟 문자열에 없는 키가 포함된 것이므로 -1을 추가, 그렇지 않으면 count 값을 추가
answer.push(count || -1);
}
return answer; // 결과 배열을 반환
}