본문 바로가기

PROGRAMMING/ALGORITHM

[프로그래머스] 위클리 챌린지 5주차

https://programmers.co.kr/learn/courses/30/lessons/84512

 

코딩테스트 연습 - 5주차

사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니

programmers.co.kr

 

문제 요약 

A E O I U 만으로 이뤄진 사전이 있는데

input 단어가 그 사전에서 몇번째 순서에 해당하는지 찾는 문제

풀이 방법

나는 DFS 완전 탐색으로 풀이.

A AA AAA ... UUUUU까지 탐색하며 input과 일치한 문자가 있으면 return한다.

 

총 경우의 수가

1자리 5^2

2자리 5^2 

...

5자리 5^5로 총 3905라는 걸 활용해 푸신분도 있었다.

소스코드

class Solution {
    static int cnt = 0, answer = 0;
    static String[] dictionary = {"A", "E", "I", "O", "U"};
    public int solution(String word) {
        dfs(word, 0, "");
        return answer;
    }

    public static void dfs(String word, int index, String temp){
        if(index == 5){
            return;
        }
        for(int i=0; i< dictionary.length; i++){
            String nextTemp = temp + dictionary[i];
            cnt++;
            if(nextTemp.equals(word)){
                answer = cnt;
                return;
            }
            dfs(word, index +1 , nextTemp);
        }
    }
}