프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제풀이
A E I O U 총 5개의 단어로 만들수 있는 모든 경우의 수를 List에 추가하여, 문제에서 주어지는 word와 일치하는 인덱스를 찾아 변환하여 해결. 모든 경우의 수가 3000~4000개 정도 되므로 시간초과 우려 X
재귀함수 실행순서는 아래와 같다.

구현코드
import java.util.ArrayList;
import java.util.List;
class Solution {
static List<String> list;
static String [] words = {"A", "E", "I", "O", "U"};
public int solution(String word) {
int answer = 0;
list = new ArrayList<>();
dfs("", 0);
for (int i = 0; i < list.size(); i++) {
if (list.get(i).equals(word)) {
answer = i;
break;
}
}
return answer;
}
static void dfs(String str, int len) {
list.add(str);
if (len == 5) return;
for (int i = 0; i < 5; i++) {
dfs(str + words[i], len + 1);
}
}
}'알고리즘 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스/JAVA 자바] 방문 길이 (0) | 2023.11.17 |
|---|---|
| [프로그래머스/JAVA 자바] 땅따먹기 (0) | 2023.11.12 |
| [프로그래머스/JAVA 자바] 게임 맵 최단거리 (0) | 2023.09.17 |
| [프로그래머스/JAVA 자바] 주차 요금 계산 (0) | 2023.09.06 |
| [프로그래머스/JAVA 자바] [3차] n진수 게임 (0) | 2023.09.05 |