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);
}
}
}
'PROGRAMMING > ALGORITHM' 카테고리의 다른 글
| [ALGORITHM] Sliding window (0) | 2021.11.12 |
|---|---|
| [ALGORITHM] Two Pointers Algorithm (0) | 2021.11.10 |
| [프로그래머스] 위클리 챌린지 4주차 (0) | 2021.08.31 |
| [백준] 9663번 N-Queen JAVA 백트래킹 (0) | 2021.08.17 |
| [프로그래머스] 위클리 챌린지 2주차 (0) | 2021.08.10 |