[프로그래머스 / C++] 주사위 게임 2

YH·2023년 11월 14일
0

문제

주사위 게임 2 : 문제 링크


문제 분석

  • 1부터 6까지 숫자가 적힌 주사위가 세 개 있다. 세 주사위를 굴렸을 때 나온 숫자를 각각 a, b, c라고 했을 때 얻는 점수는 다음과 같다.
    • 세 숫자가 모두 다르다면 a + b + c점을 얻는다.
    • 세 숫자 중 어느 두 숫자는 같고 나머지 다른 숫자는 다르다면 (a + b + c) x (a^2 + b^2 + c^2)점을 얻는다.
    • 세 숫자가 모두 같다면 (a + b + c) x (a^2 + b^2 + c^2) x (a^3 + b^3 + c^3)점을 얻는다.
  • 세 정수 a, b, c가 매개변수로 주어질 때, 얻는 점수를 return
  • 제곱수를 계산하기 위해 pow() 함수를 사용할 것 이므로 cmath 헤더를 include. 최종적으로 return 할 정수형 변수 answer 0으로 초기화
  • if ~ else if 문을 통해 3가지 조건문에 따라 연산 후 값을 answer에 저장하고, 제곱 및 세제곱 연산의 경우 pow() 함수를 사용. 최종적으로 저장된 answer을 return

pow() 함수 사용법
pow(제곱할 수, 제곱횟수) = 제곱할 수 ^ 제곱횟수


풀이

#include <cmath>

using namespace std;

int solution(int a, int b, int c) {
    int answer = 0;
    
    if(a != b && a != c && b != c) answer = a + b + c;
    else if((a == b && a != c) || (a == c && a != b) || (b == c && a != b)) answer = (a + b + c) * (pow(a, 2) + pow(b, 2) + pow(c, 2));
    else if(a == b && b == c) answer = (a + b + c) * (pow(a, 2) + pow(b, 2) + pow(c, 2)) * (pow(a, 3) + pow(b, 3) + pow(c, 3));
    return answer;
}
profile
Keep Recycling Your Dreams

0개의 댓글