추억 점수

hyuri·2023년 9월 26일
0

코딩테스트 연습

목록 보기
39/70

내가 작성한 답

function solution(name, yearning, photo) {
    var answer = [];
    let score = {};
    for (let i = 0; i < name.length; i++){
        score[name[i]] = yearning[i];
    }
    photo.map(a => {
    let result = 0;
        for(let j of a){
            score[j] !== undefined ? result += score[j] : result += 0;
        }
        answer.push(result);
    })
    return answer;
}

다른 답

function solution(name, yearning, photo) {
    return photo.map((v)=> v.reduce((a, c)=> a += yearning[name.indexOf(c)] ?? 0, 0))
}

해석

나는 새로 스코어를 만들고 거기에 배정을 한 다음 이름이 있을 경우에 점수를 더하고 없을 경우에는 0을 더해서 answer 배열에 추가했다.

다른 답을 보면 yearning에서 name.indexOf(c)를 통해 해당 숫자를 가져오고 그 숫자가 없다면 undefined가 반환된다. 하지만 ?? 연산자를 통해 null 또는 undefined일 경우 0을 반환한다.
이렇게 원하는 결과값을 배열로 받을 수 있다.

profile
개발자가 되고 싶은 지망생

0개의 댓글