🧾 목차
1. 문제 설명
2. 문제 풀이
3. 정답 코드
1. 문제 설명
알파벳 모음 ('A', 'E', 'I', 'O', 'U') 만을 사용하여 만들 수 있는 길이 5 이하의 모든 단어 조합 중
입력 문자열(word)은 몇 번 째 인덱스인지 리턴하는 문제이다.
입출력

제한 사항
만들 수 있는 단어의 최대 길이는 5 이하이다.
👉 조합을 구현할 함수에서, 현재 단어의 길이가 5다. => 즉시 리턴해야함

2. 문제 풀이
1) 변수 선언
index 변수는 조합을 만들어낼 때마다 1씩 증가를 시킬 예정이다.

2) 조합 함수
조합 함수를 구현한다.
⭐ Key point
이 때, 얼리 리턴 조건은 다음과 같은데,
1) 원하는 알파벳이 나왔을 경우 => 정답
2) 조합한 문자열이 5글자일 경우 => 제한 조건 (1<= word <= 5)
이 경우를 제외하고는, 각 모음을 하나씩 추가하며 모든 조합을 만들어내면 된다.

3. 정답 코드
function solution(word) {
var answer = 0;
var aeiou = ['A', 'E', 'I', 'O', 'U'];
var index = 0; // 사전순으로 몇번 째 인지
function combi(cur) {
if (cur === word) { // 원하는 알파벳이 나왔을 경우, 해당 인덱스를 저장
answer = index;
return;
}
if (cur.length === aeiou.length) { // 길이가 5 이상일 경우, 더이상 알파벳을 추가하지 않음
return;
}
// 알파벳 모음을 순회하며,
for (let i = 0; i < aeiou.length; i++) {
index += 1 // 인덱스 증가
combi(cur + aeiou[i]); // 알파벳 추가
}
}
combi('');
return answer;
}
'Algorithm' 카테고리의 다른 글
[Javascript] 프로그래머스 - 타겟 넘버 (2) | 2025.01.28 |
---|---|
[Javascript] 프로그래머스 - 베스트 앨범 (0) | 2025.01.25 |
[Javascript] 소수 찾기 (2) | 2025.01.21 |
[Javascript] 더 맵게 (0) | 2025.01.11 |
[Javascript] 가장 큰 수 (0) | 2025.01.11 |