코테/DFS, BFS
[java] 프로그래머스 스쿨 문자사전
상똥
2023. 12. 27. 14:49
풀이 |
1. A, E, I, O, U를 순서대로 저장한 배열 words을 생성한다. - 이때, 어디에서든지 접근할 수 있도록 static으로 선언한다 2. 문자사전에 모든(?) 문자열을 저장할 수 있도록 words라는 리스트를 생성한다 - 이때, 어디에서든지 접근할 수 있도록 static으로 선언한다 3. dfs함수를 선언한다 - 파라미터로 전달된 문자 word를 words에 저장한다. - 파라미터로 전달된 words의 인덱스 depth가 5이면 (즉, U로 이루어진 문자가 끝나면) return - 반복문을 사용하여 word에 알파벳을 하나씩 더하고, depth에 1을 더해서 다시 dfs를 호출한다 - answer는 찾으려는 문자 word의 words내 인덱스 값이다 |
회고 |
- 완전탐색으로 안풀고 수학적으로 접근하려다가 개박살났다 - 어차피 반복문으로 돌리기 때문에 정렬은 필요가 없었다!! |
코드 (접은 글) |
더보기
import java.util.*;
class Solution {
public static String[] alphabet = {"A", "E", "I", "O", "U"};
public static ArrayList<String> words;
public int solution(String word) {
int answer = 0;
words = new ArrayList<>();
dfs("", 0);
answer = words.indexOf(word);
return answer;
}
public static void dfs(String word, int depth){
words.add(word);
if(5 == depth)
return;
for (int i = 0; i < alphabet.length; i++) {
dfs(word + alphabet[i], depth + 1);
}
}
}