본문 바로가기
알고리즘/PROGRAMMERS

모음사전(Lv.2)

by 현대타운301 2024. 3. 25.

 


 

문제 설명

 

 

 

입출력 예시

 

 

요약

A, E, I, O, U 모음을 가지고 만들 수 있는 1~5 자리의 모든 조합(경우의 수) 구하기

 


 

풀이

 

접근 방식

1. 순서 파악

  → A, AA, AAA, AAAA, AAAAA, AAAAE, AAAAI, AAAAO, AAAAU, AAAE, AAAEA, AAAEE, AAAEI, AAAEO, ...

  → dfs로 length가 5가 되면 return

 

2. dfs 메소드 구현

  → 재귀 방식을 통한 모든 조합을 구하는 dfs 메소드 구현

 


 

코드리뷰

 

import java.util.*;

public class Solution {
    String[] arr = {"A", "E", "I", "O", "U"};
    List<String> list = new ArrayList<>();
    
    public void dfs(String letter) {	// dfs 재귀함수
        list.add(letter);
        if(letter.length() == 5) {	// 길이가 5가 되면 탈출
            return;
        }
        for(String nextLetter : arr) {	// 모음 배열(arr)에서 하나씩 떼서 그 전에 있던 문자와 합친 후 다음 dfs 인자로 넘김
            dfs(letter + nextLetter);
        }
    }
    public int solution(String word) {
        for(String letter : arr) {
            dfs(letter);	// "A"부터 넘겨주면서 dfs 시작
        }
        int answer = list.indexOf(word) + 1;	// index는 0부터 시작하므로 1 더해서 출력
        return answer;
    }
}

 

 

 

'알고리즘 > PROGRAMMERS' 카테고리의 다른 글

k진수에서 소수 개수 구하기(Lv.2)  (0) 2024.03.25
압축(Lv.2)  (0) 2024.03.25
푸드 파이트 대회(Lv.1)  (0) 2024.03.24
뉴스 클러스터링(Lv.2)  (0) 2024.03.24
상품 별 오프라인 매출 구하기(DB)  (0) 2024.03.22