728x90

문제가 까다로워 보여도 점화식만 찾으면 쉽게 풀수있다.

 

풀이 

  • 5번째 자리 수는 AEIOU 순서대로 바뀔때 1씩 증가한다. =1
  • 4번째 자리 수는 AEIOU 순서대로 바뀔때 5씩 증가하지만 5번째자리에 숫자가 없는 경우를 더해 +1해서 6씩 증가한다. = 6
  • 3번째 자리 수는 AEIOU 순서대로 바뀔때 4번째 자리 수 증가율 *3번째 자리 수 증가율+3번째 자리까지만 있는 경우(6 *5 +1 )증가한다. =31
  • 2번째 자리 수는 AEIOU 순서대로 바뀔때 3번째 자리 수 증가율 (31)* 2번째 자리 수 증가율(5) +2번째 자리까지만 있는 경우(+1) 씩 증가한다 식은 (31*5+1) .= 156
  • 1번째 자리 수는 AEIOU 순서대로 바뀔때 2번째 자리 수 증가율 (156)* 1번째 자리 수 증가율(5) +2번째 자리까지만 있는 경우(+1) 씩 증가한다 식은 (156*5+1) = 781.
  • 이처럼 식을 구한 다음 각 자리에 맞는 수를 더해주면 된다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class VowelDictionary {
    public int solution(String word) {
        String words = "AEIOU";
        int[] var = {781,156,31,6,1};
        int index = word.length();
        int value = word.length();
        for(int i = 0; i< word.length(); i++){
            index = words.indexOf(word.charAt(i));
            value += var[i]*index;
        }
        return value;
    }
}
 
cs

처음에 보고 생각보다 감이 안잡혔던 문제다.생각만 잘하면 쉽게 구할수 있는 문제였다. 생각 잘하자!!

728x90