본문으로 바로가기

PGMS - 모음 사전

category Algorithm/PGMS 2022. 1. 17. 22:35

https://programmers.co.kr/learn/courses/30/lessons/84512

 

코딩테스트 연습 - 모음사전

사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니

programmers.co.kr

function solution(word) {
    var answer = word.length;
    let bar= 4;
    let arr =word.split('');
    let cal = [1,6,31,156,781];
    let cvt = ['A','E','I','O','U'];
    for(let i =0; i < arr.length; i++){
        let index = bar- i;
        let val = cvt.indexOf(arr[i]) * cal[index];
        answer+=val;
    }
    return answer;
}

생각하는게 오래 걸렸고 구현 자체는 간단한 문제였다.

 

cal의 배열은 1, 1+5, 1+5+5^2, 1+5+5^2+5^3 등을 미리 구해놓은 값이다.

 

생각은 단순하다.

 

EIO를 예시로 들자면 문자열을 돌면서

첫 자리인 E인 경우에는 A로 가능한 문자열 전체를 지나쳐온 것이므로 781(1+5+5^2+5^3+5^4)를 더해주고,

두번째 자리인 I 같은 경우에는 A,E가 가능한 문자열 전체를 지나쳐왔으니 2*(1+5^2+5^3) 더해주고 반복...

 

또한 진행이 A, AA, AAA, AAAA 이런 식으로 되므로 문자열의 길이만큼을 또 더해줘야한다.

'Algorithm > PGMS' 카테고리의 다른 글

PGMS - 여행경로  (0) 2022.01.20
PGMS - k진수에서 소수 개수 구하기  (0) 2022.01.20
PGMS - 아이템줍기  (0) 2022.01.17
PGMS - 피로도  (0) 2022.01.14
PGMS - 소수찾기  (0) 2022.01.13