Problem Solving/Programmers

[프로그래머스 / JS] 모음사전 - Level 2

애송이개발자 2023. 4. 28. 16:06

🚩 문제 주소

 

프로그래머스

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

programmers.co.kr

 

📄 접근 방법

 

수학?

 

더보기

A, E, I, O, U에 각각 인덱스를 붙여서 객체를 만들었습니다.

 

또한 5⁰, 5¹, 5², 5³, 5⁴를 각 인덱스까지 누적으로 더한 값들을 역순으로 할당합니다.

알파벳 한 개부터 다섯 개까지 되는 경우가 아니면 역순으로 줄어들수록 큰 숫자이기 때문입니다.

 

주어진 단어를 반복해서 가중치[인덱스]와 알파벳의 인덱스를 곱하고 1을 정답에 더해줍니다.

A의 인덱스를 0이라고 할당해 놓았지만, A는 1부터 시작하기 때문에 1을 더해주어야 하는 것입니다.

 

정답을 반환합니다.

 


👨‍💻 나의 코드

function solution(word) {
    let answer = 0;
    const alphabet = {"A":0, "E":1, "I":2, "O":3, "U":4};
    const nums = [781, 156, 31, 6, 1]; // 누적 가중치
    
    for (let i=0; i<word.length; i++) {
        answer += nums[i]*alphabet[word[i]]+1;
        // A의 인덱스는 0이지만 A는 1이고, AA는 2인 것처럼 1부터 시작하기 때문에 +1
    }
    
    return answer;
}