function solution(table, languages, preference) {
var answer = '';
let maxVal = 0;
table.map((t) => {
const s = t.split(' ');
const sum = languages.map((l,idx) => {
const jum = s.findIndex((e) => e === l);
if(jum > 0) return (6-jum) * preference[idx];
else return 0;
}).reduce((acc, cur) => acc+cur)
if(sum > maxVal) {
maxVal = sum;
answer = s[0];
}
else if(sum === maxVal) {
answer = answer < s[0] ? answer : s[0];
}
})
return answer;
}
예전에 풀어본 문제 같은데 그때는 c++로 풀어서 문자열 처리가 조금 어려웠던 거 같은데 이번에는 Javascript로 해결해서 문자열 처리는 비교적 쉬웠다. map
을 활용하여 array
를 돌고 findIndex
로 점수를 계산하고 preference 계산을 해주었는데 sort
를 사용했으면 좀 더 깔끔한 코드를 짰을 수 있었을 거 같다.