728x90
반응형
오늘의 학습 키워드
- 완전 탐색, DFS
오늘의 회고
1. 문제
2. 해결 방안
/** 84512
* 코딩테스트 연습 > 완전탐색 > 모음사전
*/
public class pgms_topkit_7_X {
static List<String> list;
static String[] words = {"A", "E", "I", "O", "U"};
public static void main(String[] args) {
list = new ArrayList<>();
System.out.println(solution("AAAAE"));
}
public static int solution(String word) {
int answer = 0;
dfs("", 0);
for(int i=0; i<list.size(); i++) {
if(word.equals(list.get(i))) {
answer = i;
break;
}
}
return answer;
}
public static void dfs(String str, int len) {
list.add(str);
if(len == words.length) return;
for(int i=0; i<words.length; i++) {
dfs(str + words[i], len+1);
}
}
}
- 모든 경우의 수를 다 조합해서 리스트에 담아두고, 리스트에서 일치하는 단어의 인덱스를 꺼내는 완전탐색 방법이다.
- 문자를 요구사항에 맞게 조합하는 dfs 함수를 만들어 사용한다.
3. 피드백
- dfs를 만들어야 하는건 알겠는데 문자를 어떻게 조합시켜야할지 안떠올랐던 문제. 풀고나면 어려운게 아니니 익숙해지자.
참고
728x90
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘/Goorm] LV2. 카드 모으기 (Java) (0) | 2024.07.18 |
---|---|
[알고리즘/Goorm] LV2. 대체 경로 (Java) (0) | 2024.07.18 |
[알고리즘/Programmers] LV2. 전력망을 둘로 나누기 (Java) (0) | 2024.07.12 |
[알고리즘/Programmers] LV2. 피로도 (Java) (0) | 2024.07.09 |
[알고리즘/Programmers] LV2. 카펫 (Java) (0) | 2024.07.08 |