[JAVA 문제 풀이] 334. 모음사전

프로그래머스 (84512)
Stupefyee's avatar
Jun 23, 2025
[JAVA 문제 풀이] 334. 모음사전
notion image
 

내가 작성한 코드

import java.util.*; class Solution { public int solution(String word) { int answer = 0; String[] arr = {"A", "E", "I", "O", "U"}; int[] num = {781, 156, 31, 6, 1}; // 각 위치별 가중치합 List<String> list = new ArrayList<>(Arrays.asList(arr)); // 인덱스 = 각 문자 앞에 있는 문자의 개수 String[] words = word.split(""); // A로만 이루어진 경우 처리 if(word.replaceAll("A", "").length() == 0) { return word.length(); } // 현재 문자의 앞에 있는 문자의 개수 * 현재 위치 가중치합 for (int i = 0; i < words.length; i++) { int sum = num[i] * list.indexOf(words[i]); answer += sum; } return answer + words.length; } }
 

다른 사람의 코드

import java.util.*; class Solution { List<String> list = new ArrayList<>(); // 모든 규칙의 문자열을 담을 리스트 // 완전 탐색 >> 계속 반복하면서 규칙에 맞는 문자열을 list에 저장 void dfs(String str, int len) { // 길이가 5이상일 경우 리스트에 담지 않음 if (len > 5) { return; } list.add(str); for (int i = 0; i < 5; i++) { dfs(str + "AEIOU".charAt(i), len + 1); } } public int solution(String word) { dfs("", 0); return list.indexOf(word); } }
 
Share article

stupefyee