function solution(table, languages, preference) {
table = table.map((e) => e.split(" "));
let highestNum = 0;
let highestLang = [];
const score = {};
for (let i = 0; i < languages.length; i++) {
for (let j = 0; j < table.length; j++) {
score[table[j][0]] =
table[j].indexOf(languages[i]) !== -1
? score[table[j][0]]
? score[table[j][0]] +
(6 - table[j].indexOf(languages[i])) * preference[i]
: (6 - table[j].indexOf(languages[i])) * preference[i]
: score[table[j][0]];
}
}
for (let key in score) {
if (score[key] > highestNum) {
highestNum = score[key];
highestLang = [key]
} else if(score[key] === highestNum){
highestLang.push(key)
}
}
return highestLang.sort()[0]
}
table의 각 요소를 languages의 요소에 맞춰서 순회시켜서 문제를 해결했다.
문제를 제대로 안읽어서 솔트를 안해주는 바람에 시간을 꽤나 잡아먹었다.
출처: 프로그래머스 코딩 테스트 연습,