https://school.programmers.co.kr/learn/courses/30/lessons/84512
- 상태
모든 단어의 조합을 만들어 보고 해당 단어가 몇 번째에 위치하는지 구하면 된다.
시간 초과를 걱정하게 되지만 길이가 5이니 1억 회에 한참 못 미치게 된다.
- 종료조건
만든 문자열의 길이가 5일경우
- 점화식
AEIOU순으로 배열을 탐색하며 문자를 넣어주면 된다.
indexOf로 하게되면 0부터 시작되지만 처음 시작을 ""(빈 문자열)로 진행하니 indexOf로 하게 되어도 정답이 도출된다.
import java.util.*;
class Solution {
ArrayList<String> list = new ArrayList<>();
char[] arr = {'A', 'E', 'I', 'O', 'U'};
public int solution(String word) {
mkString("");
return list.indexOf(word);
}
public void mkString(String word){
list.add(word);
if(word.length() == 5){
return;
}
for(char letter : arr){
mkString(word + letter);
}
return;
}
}