🚩 문제 주소
📄 접근 방법
수학?
더보기
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;
}
'Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스 / JS] 소수 찾기 - Level 2 (1) | 2023.05.02 |
---|---|
[프로그래머스 / JS] 전력망을 둘로 나누기 - Level 2 (0) | 2023.04.29 |
[프로그래머스 / JS] 배열 조각하기 - Level 0 (0) | 2023.04.21 |
[프로그래머스 / JS] 게임 맵 최단거리 - Level 2 (1) | 2023.04.17 |
[프로그래머스 / JS] 타겟 넘버 - Level 2 (0) | 2023.04.13 |