PS/프로그래머스

[JS][DFS]모음사전

returnzero 2022. 7. 22. 14:11
function solution(word) {
    var answer = 0;
    let words=['A','E','I','O','U'];
    let counter =0;
    
    function dfs (current){
        
        if(current===word){
            answer=counter;
            return;};
        
        if(current.length==5){
            return;
        }
        for(let i=0; i<words.length;i++){
            if(current.length<5){
                counter++;
                // console.log(current+words[i],counter)
                dfs(current+words[i]);
                current.substring(0,current.length-1);
            }
        }

    }
     dfs("");
    return answer;
}

DFS는? 재귀로 짜는게 답이다. 다만, 재귀를 선언하기 이전에 실행했던 execution, current+words[i] 같은 것들을 되돌릴 수 있는 execution을 실행해줘야 한다는 것을 잊지 말자. 

substring(0,current.length-1) 을 수행하게 되면 string 에서 마지막 char을 날릴 수 있게 된다.