Baekjoon 2480. 주사위 세개

윤동환·2022년 11월 29일
0

Algorithm

목록 보기
15/54
post-thumbnail

내가 작성한 코드

#include <iostream>
#include <algorithm>

using namespace std;

int checkSame(int * arr, int &same) {
    int num = 0;
    if (arr[0] == arr[1]) {
        (same)++;
        num = arr[0];
        if (arr[0] == arr[2]) {
            (same)++;
            num = arr[0];
        }
    }
    else if (arr[1] == arr[2]) {
        (same)++;
        num = arr[1];
    }
    return num;
}

int main() {
    int max = 0;
    int a[3];
    int same_count = 0;

    for(int i = 0; i < 3; i++) {
        cin >> a[i];
        max = max > a[i] ? max : a[i];
    }
    sort(a, a+3);
    int snum = checkSame(a, same_count);
    if (same_count == 2) {
        cout << 10000 + snum * 1000 << endl;
    } else if (same_count == 1) {
        cout << 1000 + snum * 100 << endl;
    } else {
        cout << max * 100 << endl;
    }
    return 0;
}

입력받으면서 max를 확보해두고자 하였다.
3 6 3 처럼 같은 숫자 입력의 보장이 되지 않기때문에 정렬하여 순서를 보장하려고 했다.
checkSame이라는 함수를 통해서 중복된 수의 개수와 어떤 수가 중복되는지 확인하였고 받은 값을 토대로 출력문을 작성하였다.

왜 함수를 따로 선언하여 문제를 푸려고 하였나?

숫자가 3개이상 입력되었을 경우에도 적용시키고 싶었다.
해서 sort를 통해 순서를 보장하고 가장 많이 중복된 수 중 가장 큰 수를 확보하는 함수를 선언하려고 하였으나, 문제가 요구하는 부분을 가장 적은 비용으로 처리하는 것이 좋겠다는 판단이 들었다.
그리하여, 이미 선언한 함수는 사용하되 3개의 수만 처리하는 코드로 작성하였다.

profile
모르면 공부하고 알게되면 공유하는 개발자

0개의 댓글