[프로그래머스] 모음사전 (Java)
https://school.programmers.co.kr/learn/courses/30/lessons/84512
입력 : 단어 하나 word
출력 : 이 단어가 사전에서 몇 번째 단어인지 반환
O(n)
완전 탐색
각 자릿수의 가중치를 미리 계산해서 저장하고 반환한다
구현
class Solution {
// 모음과 그에 해당하는 인덱스를 저장하는 배열
private static final char[] VOWELS = {'A', 'E', 'I', 'O', 'U'};
// 각 자릿수의 가중치를 미리 계산해서 저장
private static final int[] WEIGHTS = {781, 156, 31, 6, 1}; // 5^4, 5^3, 5^2, 5^1, 5^0의 합으로 계산
public int solution(String word) {
int answer = 0;
// 각 글자마다 처리
for (int i = 0; i < word.length(); i++) {
// 각 글자의 인덱스를 구함
int index = getIndex(word.charAt(i));
// 위치 계산
answer += index * WEIGHTS[i] + 1;
}
return answer;
}
// 주어진 문자에 해당하는 인덱스를 반환
private int getIndex(char ch) {
for (int i = 0; i < VOWELS.length; i++) {
if (VOWELS[i] == ch) {
return i;
}
}
return -1; // 주어진 문자가 모음에 포함되지 않는 경우
}
}