
문제
https://school.programmers.co.kr/learn/courses/30/lessons/84512
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
5개의 요소 밖에 없기 때문에 완전탐색을 돌면된다.
처음에는 모든 경우의 수를 만들고 정렬을 해야할거라고 생각했는데,
A E I O U 가 애초에 정렬이 되어있는 순서였기에, 완전 탐색을 앞에서부터 수행하면 자동으로 오름차순으로 배열에 추가할 수 있다!
또한 나는 해당 요소를 선택할지, 말지를 고르는 식으로 분기를 두개 나누어서 처음에 풀었는데 모든 요소를 만들어야 하기에 딱히 그럴 필요 없이 풀 수 있었다. 단, 어떤식으로 풀던 요소가 5개 뿐이라서 굉장히 널널한 편인거 같다.
코드
import java.util.*;
class Solution {
public String[] alphas = {"A", "E", "I", "O", "U"};
public List<String> words = new ArrayList<>();
public void recursive(int cnt, String res){
if(cnt > 5) return;
words.add(res);
for(String alpha : alphas){
recursive(cnt+1, res + alpha);
}
}
public int solution(String word) {
recursive(0, "");
return words.indexOf(word);
}
}
후기
레벨3을 붙인 ㅇ이유는 뭘까..?
'프로그래머스' 카테고리의 다른 글
LV2 뒤에 있는 큰 수 찾기 (Java) (1) | 2023.12.21 |
---|---|
LV3 단어 변환 (Java) (1) | 2023.11.24 |
LV3 최고의 집합 (Java) (1) | 2023.11.22 |
LV3 야근지수 (Java) (1) | 2023.11.21 |
LV2 게임 맵 최단거리 (Java) (0) | 2023.11.20 |