코딩테스트

[programmers] JAVA_0단계 주사위 게임 2

congs 2024. 6. 18. 19:53

주사위 게임 2

 

풀이

- if문을 사용하는 방법

class Solution {
    public int solution(int a, int b, int c) {
       
        int answer = a + b + c;

        if (a == b || b == c || a == c) {//두 숫자가 같고, 하나의 숫자가 다른 경우
            answer *= (a * a + b * b + c * c);
        }

        if (a == b && b == c) {//모두 같은 숫자인 경우
            answer *= (a * a * a + b * b * b + c * c * c);
        }

        return answer;
    }
}
  • (int) pow(a, 2) 를 이용하여 a*a를 만들 수 있음

 

- pow( , )를 클래스로 만들어 오버라이딩 하는 방법

class Solution {
    public int solution(int a, int b, int c) {
        int answer = 1;
        int count = 1;
        
        if(a == b || a == c || b == c) {
        // 두 숫자가 같을 때 count를 증가시킴
            count++;
        }

        if(a == b && b == c) {
        // 세 숫자가 같을 때 한번 더 count를 증가시킴
            count++;
        }

        for(int i = 1; i <= count; i++) {
            answer *= (pow(a,i)+pow(b,i)+pow(c,i));
        }

        return answer;
    }

    private int pow(int a, int b) {
        if(b == 0) return 1; // 거듭제곱의 지수가 0일 때 결과는 1리턴 (0제곱은 1)
        return a * pow(a, b-1); // a의 (b-1)제곱 리턴
    }
}