https://programmers.co.kr/learn/courses/30/lessons/84512
function solution(word) {
let alpha = ['A', 'E', 'I', 'O', 'U'];
for (let i = 1; i <= 5; i++) {
dfs(alpha, 0, i);
}
// console.log(answers.sort());
return answers.sort().indexOf(word)+1;
}
let answers = [];
function dfs(alpha, depth, num, arr = []) {
if (depth == num) {
let str = arr.join('');
answers.push(str);
}
else {
for (let i = 0; i < alpha.length; i++) {
arr.push(alpha[i]);
dfs(alpha, depth + 1, num, arr)
arr.pop();
}
}
}
let word = "AAAE";
console.log(solution(word));
5주차 위클리 문제 모음 사전이다.
A E I O U 로 이루어진 길이가 5까지인 사전에서 word가 몇 번째 있는지 구하는 문제이다.
처음에 어떤 규칙이 있을 것 같아서 생각해보다가 떠오르지 않았다.
그래서 일단 AEIOU로 이루어진 문자열 조합을 만들어 정렬시킨다음 indexOf로 몇번째에 있는지 찾았다.
sort()가 문자열 기준으로 정렬하기때문에 안에 별다른 함수 없이 sort()만으로 사전순 정렬이 되었다.