Geisha 2024. 7. 1. 20:53

 

 

DFS를 사용했을때 가장 빠른 결과가 나올 수 있을 것 같은 순서였다.

다른방식을 생각해 보고자 했지만 떠오르지 않았다. ㅠ

하나의 리스트를 넣고 모든 경우의 수를 넣은 후 순서 탐색을 통해 그 리스트안의 인덱스 값을 반환하여 정답을 찾아내었다.

import java.util.*;

class Solution {
    List<String> list = new ArrayList<>();
    String[] arr = {"A","E","I","O","U"};
    public int solution(String word) {
        int answer = 0;
        DFS("",0);
        for(int i = 0 ; i < list.size(); i++){
            if(list.get(i).equals(word)){
                answer = i;
                break;
            }
        }
        return answer;
    }
    public void DFS(String w,int depth){
        list.add(w);
        if(depth == 5)
            return;
        for(int i = 0 ; i < 5 ; i++){
            DFS(w+arr[i],depth+1);
        }
    }
}