min

프로그래머스 추억 점수 자바스크립트 본문

알고리즘

프로그래머스 추억 점수 자바스크립트

minprogramming 2023. 8. 16. 06:21

<문제>

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

<나의 풀이>

//photo에 있는 배열들을 하나씩 꺼내면서 다음 과정을 수행합니다.
//꺼낸 배열의 원소들을 하나씩 꺼내면서 다음 과정을 수행합니다.
//만약 원소가 name에 있다면 그 인덱스에 해당하는 yearning에 값을 더합니다.
//만약 원소가 name에 없다면 해당 과정을 수행하지 않습니다.
//원소들을 다 돌고 나서 그 합을 answer에 push 합니다.


function solution(name, yearning, photo) {
    var answer = [];
    for(let i = 0; i < photo.length; i++) {
        let sum = 0;
        for(let j = 0; j < photo[i].length; j++) {
            let index = name.indexOf(photo[i][j])
            if(index !== -1) {
                sum += yearning[index]
            }
        }
        answer.push(sum)
    }
    return answer;
}

 

<다른 사람의 풀이>

 

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

 

<참고 자료>

 

indexOf

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

 

Array.prototype.indexOf() - JavaScript | MDN

indexOf() 메서드는 배열에서 지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환하고 존재하지 않으면 -1을 반환합니다.

developer.mozilla.org