반응형
프로그래머스 - 알고리즘 고득점 Kit 완전탐색 편

문제풀이
모음의 수는 정해져 있습니다.
그래서 vowels로 배열을 만들어서 쉽게 접근할 수 있었습니다.
vowels는 순서대로 배치했습니다.
재귀함수를 이용해서 단어를 생성하고, 마지막에 word와 같은 단어의 index를 찾는 방향으로 구현하고자 했습니다.
currentWord를 dictionary 배열에 push하면서 모든 경우의 단어를 넣었습니다.
currentWord + vowels[i]를 인자로 넣어주면서 계속 단어를 생성했습니다.
마지막에 사전 순으로 정렬을 하고 indexOf() 메서드를 활용하여 word의 인덱스를 찾았습니다.
function solution(word) {
const vowels = ['A', 'E', 'I', 'O', 'U'];
const dictionary = [];
// 단어를 재귀적으로 생성하는 함수
function generateWords(currentWord) {
// 최대 길이가 5인 단어만 생성
if (currentWord.length > 5) return;
// 현재 단어를 사전에 추가
dictionary.push(currentWord);
// 각 모음을 더해서 새로운 단어 생성
for (let i = 0; i < vowels.length; i++) {
generateWords(currentWord + vowels[i]);
}
}
// 빈 문자열에서부터 단어 생성 시작
generateWords("");
// 사전 순서로 정렬
dictionary.sort();
// 해당 단어가 사전에서 몇 번째에 위치하는지 반환
return dictionary.indexOf(word);
}
반응형
'알고리즘 PS > Javascript' 카테고리의 다른 글
[JavaScript] 베스트앨범 - 해시 (6) | 2024.11.17 |
---|---|
[JavaScript] 전력망을 둘로 나누기 - 완전탐색 (4) | 2024.11.06 |
[JavaScript] 피로도 - 완전탐색 (4) | 2024.10.27 |
[JavaScript] 카펫 - 완전탐색 (0) | 2024.10.18 |
[JavaScript] 소수 찾기 - 완전탐색 (0) | 2024.10.17 |