추억 점수

RyuIsangGo🤘·2023년 8월 23일
0

문제

나의코드

const solution = (name, yearning, photo) => {
    const nameYearningMap = new Map();
    for(let i = 0; i < name.length; i++) {
        let value = 0;
        if(i < yearning.length) {
            value = yearning[i];
        }
        nameYearningMap.set(name[i], value);
    }
 
    return photo.map((x, i) => {
       return x.reduce((prev, curr) => {
           if(!nameYearningMap.has(curr)) return prev;
           else return prev + nameYearningMap.get(curr);
       }, 0);
    })
}

로직흐름

  1. name의 각 그리움 점수를 Map object에 저장한다.
  2. 1.에서 Map object에 저장할 때, 만약 name과 yearning의 배열의 길이가 다르다면, yearning이 없는 값은 0을 저장한다.
  3. photo에 map메소드를 사용해서 각각의 요소의 그리움 합을 구한 것으로 값을 변경한다.
    그리움 합을 구할 땐 reduce를 사용했다.
    만약 Map Object의 key값이 없는 요소가 있다면 해당 값은 0이라고 간주했다.
  4. 3.에서 요소가 바뀐 배열을 반환한다.
profile
이전 블로그 입니다.

0개의 댓글