[프로그래머스] 모음사전 JAVA

AMUD·2023년 6월 1일
0

Algorithm

목록 보기
58/78
post-custom-banner

문제


문제링크

접근

  • 가장 앞자리가 바뀔 때마다 아래 자리 수의 경우의 수 만큼 건너 뛰어야 한다.
  • 예를 들어 A -> E로 갈때는 A를 가장 앞글자로 두는 모든 단어들을 건너뛰어야 한다. 그래서 4자리의 모든 경우의 수를 계산하고, 몇 칸 넘어가는지를 곱하면 된다.
  • 모든 경우의 수는 제곱 연산의 합으로 구하였다.
  • 각 자리 수마다 같은 연산을 반복하였다.

풀이

import java.util.*;

class Solution {
    public int solution(String word) {
        int answer = 0;
        double currPart = 5 + Math.pow(5, 2) + Math.pow(5, 3) + Math.pow(5, 4) + Math.pow(5, 5);
        
        for (int i = 0; i < word.length(); i++) {
            char c = word.charAt(i);
            currPart -= Math.pow(5, 5-i);
            
            if (c == 'A') answer += 1;
            else if (c == 'E') answer += currPart + 2;
            else if (c == 'I') answer += currPart * 2 + 3;
            else if (c == 'O') answer += currPart * 3 + 4;
            else answer += currPart * 4 + 5;
        }
        
        
        return answer;
    }
    
}
profile
210's Velog :: Ambition Makes Us Diligent
post-custom-banner

0개의 댓글