#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개의 수만 처리하는 코드로 작성하였다.