99클럽 코테 스터디 7일차 TIL - 프로그래머스 모음사전

heyonmin·2024년 11월 3일

Algorithm

목록 보기
7/29

Problem

  1. A -> AA -> AAA -> AAAA -> AAAAA -> AAAAE -> AAAEE -> ... -> UUUUU
  2. 5^5 가지

Input

  1. "AAAAE"

Output

  1. 6

Solve

  • 왼쪽 알파벳이 항상 우선이다!

  • 5중 for 문을 돌린다.

  • 각 for문 마다 단어를 추가하면된다.

  • for문도 괜찮지만 dfs도 괜찮을거 같다.
    1 A
    2 AA
    3 AAA
    4 AAAA
    5 AAAAA
    6 AAAAE
    7 AAAAI
    8 AAAAO
    9 AAAAU
    10 AAAE

Code

import java.util.*;

class Solution {
    static int seq = 1;
    static StringBuilder sb = new StringBuilder();
    static char[] aeiou = new char[] {'A', 'E', 'I', 'O', 'U'};
    static Map<String, Integer> map = new HashMap<>();

    public int solution(String word) {
    	dfs(0);
        return map.get(word);
    }

    static void dfs(int depth) {
        if (depth == 5) return;

        for (char c : aeiou) {
            sb.append(c);
            map.put(sb.toString(), seq++);
            dfs(depth + 1);
            sb.deleteCharAt(sb.length() - 1);
        }
    }

}
profile
LEE HYEON MIN

0개의 댓글