[프로그래머스] 추억점수 (level1, JavaScript)

이민영·2023년 4월 9일

문제

https://school.programmers.co.kr/learn/courses/30/lessons/176963

나의 접근 방법

매개변수 name, yearning를 딕셔너리로 만들어주고 photo원소를 하나씩 돌아 만들어준 딕셔너리 key와 photo원소가 동일하면 점수를 더해주는 방식으로 풀었다.

나의 풀이

function solution(name, yearning, photo) {
    let answer = [];
    //name을 key를 yearning을 value로 객체를 담아준다
    // ex) {"may": 5, "kein":10}
    const missScore = {};
    for (let i = 0; i < name.length; i++) {
      missScore[name[i]] = yearning[i];
    }
     // missScore key와 photo 원소가 일치하면 value(점수)를 더해줄 이중 for문  
    for(let j = 0; j<photo.length; j++) {
        // missScore value를 더해줄 변수, answer에다가 최종 점수를 담아주면 다시 0으로 리셋
        let score = 0;
        for(let k =0; k< photo[j].length; k++){
             const name = photo[j][k];
            //missScore에 name값이 들어있다면 missScore 값(점수)를 score에 더해주고, 
            if(missScore.hasOwnProperty(name)){
                score += missScore[name];
            } else { //name값이 없다면 0을 더해준다
                score += 0;
            }
        }
        //최종 점수를 answer에 push해준다
        answer.push(score);
    }
    return answer;
}
profile
Frontend Developer

0개의 댓글