[프로그래머스 level2] 모음 사전

김예지·2021년 10월 22일
0

문제

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


문제 풀이

코드

function solution(word) {
    const initial=['A', 'E', 'I', 'O', 'U'];
    const answer=[];
    let tmp=[];
    for(let i=1; i<=5; i++){
        DFS(0, i); //i는 뽑는 갯수
    }
    
    //1. 중복 순열 구하기 
    function DFS(v, n){
        if(v===n){
            answer.push(tmp.join('').slice());
        }
        else{
            for(let i=0; i<initial.length; i++){
                tmp[v]=initial[i];
                DFS(v+1, n);
            }
        }
    }
    
    //2. 모든 조합 정렬
    answer.sort(); 
    
    //3. 원하는 word를 answer에서 찾음 
    return answer.indexOf(word)+1;
}

DFS를 이용해서 중복순열을 구하고, 모든 조합을 정렬한 후, 원하는 word를 찾는다. 이때, sort()는 문자를 정렬하는 메소드이기때문에 단순하게 .sort()로 작성해줘도 된다.
DFS 연습 많이 해야지!

profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

0개의 댓글