728x90
반응형
📜 문제 내용
🤔 과정
- 모든 경우의 수를 고려해 index를 수학적으로 계산하려했으나, 완전 탐색과는 거리가 멀어서 의도에 맞게 풀어보기로 했다. (모든 단어의 수 : 3905 개 = 5 + 25 + 125 + 625 + 3125)
- list 형태의 사전을 하나 만들고, 모든 경우의 단어 조합을 DFS 를 통해 add 한다.
- 그리고 주어진 word를 사전에서 찾는다.
✨ 최초 제출 답안
import java.util.*;
class Solution {
public static String[] vowels = {"A", "E", "I", "O", "U"};
public static final int MAX_LENGTH = 5;
public static List<String> dict;
// 단어 삽입 dfs
public static void wordInsert(String str, int depth){
dict.add(str);
// 최대 길이에 도달하면 return
if(depth == MAX_LENGTH) return;
// 모음 하나씩 붙여가며 단어 길이 1 증가
for(int i = 0; i < MAX_LENGTH; i++){
wordInsert(str + vowels[i], depth + 1);
}
}
public int solution(String word) {
// 사전 생성
dict = new ArrayList<>();
// 0 번째 단어가 "", 1 번째 단어가 A
// 첫 시작 단어 길이는 0
wordInsert("", 0);
int answer = 0;
for(int i=0;i<dict.size();i++){
if(word.equals(dict.get(i))){
answer = i;
break;
}
}
return answer;
}
}
🔗 문제 링크
728x90
반응형