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 연습 많이 해야지!