모음 사전_복습

하이솝·5일 전

2026.08.08

문제 풀이

나의 코드


소요 시간: 1시간
시간 복잡도: O(1)O(1)


class Solution {
    private String[] alphabet = { "A", "E", "I", "O", "U" };
    private int ans = 0;
    private int cnt = 0;
    public int solution(String word) {
        dfs("", word);
        
        return ans;
    }
    private void dfs(String s, String word) {
        if (s.length() == 5) {
            return;
        }
        for (int i = 0; i < alphabet.length; i++) {
            cnt++;
            if ((s + alphabet[i]).equals(word)) {
                ans = cnt;
                return;
            }
            dfs(s + alphabet[i], word);
        }
    }
}

AI 코드


시간 복잡도: O(1)O(1)


코드 분석

수학적인 규칙을 사용하여 각 자릿수마다 가중치를 두고, 한번의 순회로 끝냄


class Solution {
    public int solution(String word) {
        int[] weight = { 781, 156, 31, 6, 1 };
        String alphabet = "AEIOU";
        int answer = 0;

        for (int i = 0; i < word.length(); i++) {
            answer += alphabet.indexOf(word.charAt(i)) * weight[i] + 1;
        }

        return answer;
    }
}

문제 풀이 후기

기본적인 DFS 문제였는데
너무 어렵게 생각해서 이전에 풀었던 코드를 참고해서 해결했다.

수학적인 규칙을 찾으려 했으나, 찾지 못해서 DFS로 해결했다.

0개의 댓글