알고리즘/JavaScript

JavaScript로 프로그래머스 풀기, 추억 점수

홍구리당당 2023. 11. 20. 23:01

내 풀이)
좀 더 연산을 효율적으로 하기 위해, name과 yearning을 맵핑한 객체를 만들자.

추억 점수는 number 범위를 넘지 않으므로, 일반적인 연산을 해도 좋다.

내 코드)

function solution(name, yearning, photo) {
  const score = {};
  name.forEach((el, i) => {
    score[el] = yearning[i];
  });

  const answer = photo.map((els) => {
    let sum = 0;
    els.forEach((el)=>{
      sum += score[el] ?? 0;
    });
    return sum;
  });

  return answer;
}

여기서, 연습 겸 sum 을 구할 때엔 reduce 메소드를 활용한다면 아래 코드와 같다.

function solution(name, yearning, photo) {
  const score = {};
  name.forEach((el, i) => {
    score[el] = yearning[i];
  });

  return photo.map((els) => els.reduce((acc, el)=> (acc + (score[el] ?? 0)), 0));
}