모음사전

문제


문제 풀이

해당 문제를 dfs 이용한 완전 검색을 하였다. 매 dfs 호출 마다 입력되는 문자열을 list에 담게 함으로써 A, AA, AAA, AAAA, AAAAA 까지 가는동안의 모든 문자열을 저장할 수 있음. 

 

그리고 AAAAA 이후 AAAAE 가 나오는 순서를 보고 이중 for문을 사용해야 겠다고 생각하여 호출쪽에 for문 한개와 dfs 안쪽에 for을 두어 처리 하였음. 

 

다른 분들의 답안도 많고 짧은데 뭔말인지 이해가 안되는게 많아서 따로 공부하지 않았음.


나의 답안

public static int solution(String word) {
    int answer = 0;
    ArrayList<String> dic = new ArrayList<>();

    String[] mother = {"A", "E", "I", "O", "U"};

    for (int i = 0; i < mother.length; i++) {
        dfs(mother, mother[i], dic);
    }

    System.out.println(dic);
    for (int i = 0; i < dic.size(); i++) {
        if (dic.get(i).equals(word)) answer = i + 1;
    }

    return answer;
}

private static void dfs(String[] mother, String s, ArrayList<String> dic) {

    dic.add(s);

    if (s.length() == 5) {
        return;
    }

    for (int i = 0; i < mother.length; i++) {
        dfs(mother, s + mother[i], dic);
    }

}

'Programmers 문제풀이 > Lv.2' 카테고리의 다른 글

큰 수 만들기  (0) 2023.04.05
소수 찾기  (0) 2023.04.05
땅따먹기  (0) 2023.04.05
주식 가격  (0) 2023.04.05
오픈채팅방  (0) 2023.04.05