Develop
[프로그래머스] 주사위 게임2 본문
문제
내풀이
class Solution {
public int solution(int a, int b, int c) {
int answer = a + b + c;
if((a==b) && (b==c) && (c==a)){ // 세 숫자가 모두 같음
answer = answer*(a*a + b*b + c*c)*(a*a*a + b*b*b + c*c*c);
}else if( (a!=b) && (b!=c) && (c!=a) ){ // 세 숫자가 모두 다름
}else{ // 세 숫자 중 어느 두 숫자는 같고 나머지 숫자가 다름
answer = answer*(a*a + b*b + c*c);
}
return answer;
}
}
다른 풀이
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++;
}
if(a == b && b == c) {
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;
return a * pow(a, b-1);
}
}
느낀점
일반 조건문으로만 푸는 것이 아닌 for문과 pow()함수를 이용했다
나도 pow함수를 이렇게 정의해서 쓰는 방법도 좋은 것 같다
그러나 굳이 b-1를 한 이유가 있는지 궁금하다
'개인 공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 홀수 vs 짝수 (0) | 2024.01.20 |
---|---|
[프로그래머스] 원소들의 곱과 합 (0) | 2024.01.19 |
[프로그래머스] 등차수열의 특정한 항만 더하기 (0) | 2024.01.18 |
[프로그래머스] 코드 처리하기 (0) | 2024.01.18 |
[프로그래머스] flag에 따라 다른 값 반환하기 (0) | 2024.01.17 |