[JAVA 문제 풀이] 112. 주사위 게임 2

프로그래머스 (181930)
Stupefyee's avatar
Feb 27, 2025
[JAVA 문제 풀이] 112. 주사위 게임 2
notion image
 

내가 작성한 코드

class Solution { public int solution(int a, int b, int c) { if (a == b && b == c) { return (a + b + c) * (a * a + b * b + c * c) * (a * a * a + b * b * b + c * c * c); } if (a == b || b == c || c == a) { return (a + b + c) * (a * a + b * b + c * c); } return a + b + c; } }
 

다른 사람의 코드

class Solution { public int solution(int a, int b, int c) { int answer = 1; // 최종 결과를 저장할 변수, 초기값은 곱셈을 위해 1로 설정 int count = 1; // 기본 count 값은 1, 이는 세 숫자가 모두 다를 경우를 의미 // 두 수가 같으면 count 증가 (중복된 수가 있을 경우) if (a == b || a == c || b == c) { count++; } // 세 수가 모두 같으면 count 추가 증가 (모든 숫자가 같을 경우) if (a == b && b == c) { count++; } // count 값만큼 반복하여 곱셈 수행 // count가 1이면 다 다른 경우 (1차식만 곱) // count가 2이면 두 수가 같은 경우 (1차, 2차식 곱) // count가 3이면 세 수가 같은 경우 (1차, 2차, 3차식 곱) for (int i = 1; i <= count; i++) { // 각 차수의 a^i + b^i + c^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 (a^0 = 1) return a * pow(a, b - 1); // 재귀적으로 a * a^(b-1) 수행 } }
 
Share article

stupefyee