[알고리즘] 프로그래머스 모음사전 ( 레벨2 - 완전탐색 )

2022. 12. 5. 21:57알고리즘

프로그래머스 레벨2 문제 중 '모음사전'이라는 문제입니다. 완전 탐색입니다.

  • 문제 출처 :링크 
  • 완전탐색
  • 관련 문제 : 아직 못 찾음

풀이 포인트

  • 완전 탐색인데 규칙을 찾아서 연산 횟수를 비약적으로 단축시키는 방법입니다.
  • 기본적으로 A의 배치는 1씩 증가합니다.
  • 다음 모음부터는 자리수마다 781, 156, 31, 6, 1씩 증가합니다.
  • 모음 사전 만드는 규칙이 AAAAA -> AAAAE 이렇게 되는 것은 1씩 증가하기 때문입니다.
  • AAAAA -> AAAEA 는 다섯번째 자리가 1씩 증가하고 네번째 자리가 1 증가했기에 6씩 증가하는 것입니다.
  • 같은 이유로 각 자리의 모음이 다음으로 증가하는 과정에서 위 규칙이 적용됩니다.
class Solution {
    
    public int solution(String word) {
        int answer = 0;
        String s = "AEIOU";
        int[] m = {781, 156,31,6,1};

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