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

꿈별·2023년 8월 17일
0

문제풀이

목록 보기
24/52

문제


풀이

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int solution(int a, int b, int c, int d) {
    int arr[4] = { a, b, c, d };
    int p = 0, q = 0;
    sort(arr, arr+4);
    
    // 모두 같음
    if (arr[0] == arr[3]) 
    {
        return 1111 * arr[0];
    }
    // 3개만 같음
    else if (arr[1] == arr[2] && (arr[0] == arr[1] || arr[2] == arr[3]))
    {
        p = arr[1];
        q = arr[0] != arr[1] ? arr[0] : arr[3];
        return (10 * p + q) * (10 * p + q);
    }
    // 2개씩 같음
    else if (arr[0] == arr[1] && arr[2] == arr[3])
    {
        p = arr[0];
        q = arr[4];
        return (p + q) * abs(p - q);
    }
    // 2개 같고 나머지 둘은 다름,
    // 3개 이상 같거나, 둘둘씩 같은 경우는 위쪽에서 걸러짐
    else if (arr[0] == arr[1] || arr[1] == arr[2] || arr[2] == arr[3])
    {
        if (arr[0] == arr[1])
            return arr[2] * arr[3];
        else if (arr[1] == arr[2])
            return arr[0] * arr[3];
        else
            return arr[0] * arr[1];
    }
    // 4개 모두 다름
    else if (arr[0] != arr[1] && arr[1] != arr[2] && arr[2] != arr[3])
    {
        return arr[0];
    }
    
}

0개의 댓글