728x90
반응형
문제
접근방법
1) 완전탐색을 사용해 조합될 수 있는 모든 모음의 경우의 수를 찾은 후 HashSet에 저장한다.
2) 저장된 HashSet을 오름차순으로 정렬한 후, word가 몇 번째 순서인지 리턴한다.
코드
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
class Solution {
public Set<String> set = new HashSet<>();
public int solution(String word) {
dfs("", 0);
return set
.stream()
.sorted()
.collect(Collectors.toList())
.indexOf(word)+1;
}
/*
* 완전탐색
* 완전탐색을 사용해 모든 모음의 경우의 수를 찾아 HashSet에 저장한다.
* @param word 조합된 모음
* @param 탐색횟수
*/
public void dfs(String word, int loop) {
String[] chars = {"A","E","I","O","U"};
if (loop == 5) {
Stream
.of(word)
.filter(el->!"".equals(el))
.forEach(set::add);
return;
}
Arrays
.stream(chars)
.forEach(el->{
dfs(word+el, loop+1);
dfs(word, loop+1);
});
}
}
결과
주의사항
1) 없음
728x90
반응형
'코딩테스트' 카테고리의 다른 글
[코테/Java] 프로그래머스 : 뒤에 있는 큰 수 (0) | 2023.08.26 |
---|---|
[코테/JAVA] 프로그래머스 : 멀리 뛰기 (0) | 2023.08.10 |
[코테/JAVA] 프로그래머스 : 숫자 변환하기 (0) | 2023.08.09 |
[코테/JAVA] 프로그래머스 : 덧칠하기 (0) | 2023.05.31 |
[코테/JAVA] 연습문제 : 공원 산책 (0) | 2023.05.24 |
댓글