프로그래머스 - 모음 사전 - 재귀 - Java

chaemin·2024년 4월 11일
0

프로그래머스

목록 보기
15/64

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/84512

2. 풀이

  1. 상태
    모든 단어의 조합을 만들어 보고 해당 단어가 몇 번째에 위치하는지 구하면 된다.
    시간 초과를 걱정하게 되지만 길이가 5이니 1억 회에 한참 못 미치게 된다.
  1. 종료조건
    만든 문자열의 길이가 5일경우
  1. 점화식
    AEIOU순으로 배열을 탐색하며 문자를 넣어주면 된다.

✨핵심 Point

indexOf로 하게되면 0부터 시작되지만 처음 시작을 ""(빈 문자열)로 진행하니 indexOf로 하게 되어도 정답이 도출된다.

3. 전체코드

import java.util.*;

class Solution {
    ArrayList<String> list = new ArrayList<>();
    char[] arr = {'A', 'E', 'I', 'O', 'U'};
    
    public int solution(String word) {
        mkString("");
        
        return list.indexOf(word);
    }
    
    public void mkString(String word){
        list.add(word);
        
        if(word.length() == 5){
            return;
        }
        
        for(char letter : arr){
            mkString(word + letter);
        }
        
        return;
    }
}

0개의 댓글