본문 바로가기

프로그래머/기타

백준 온라인 저지(BOJ) 2309번 - 일곱난쟁이

백준 온라인 저지(BOJ) 2309번 - 일곱난쟁이

경우의 수

아홉 난쟁이의 키가 주어진다.
아홉 난쟁이 중 일곱 명을 고르는 것은, 아홉 명 중 두 명을 고르는 것과 같다.
따라서 경우의 수는 9x8 = 72가지.

다 해보면 된다.

해답

#include <iostream>
#include <algorithm>

using namespace std;

bool check(const int* data, const int i, const int j){
    int sum = 0;
    for(int a=0; a<9; a++){
        sum += data[a];
    }


    sum -= (data[i] + data[j]);

    if(sum == 100)
        return true;
    else
        return false;
}

int main() {
    int data[9];

    for(int i=0; i<9; i++){
        cin >> data[i];
    }

    sort(data, data+9);

//    for(int i=0; i<9; i++){
//        cout << data[i] << '\n';
//    }

    for(int i=0; i<9; i++){
        for(int j=i+1; j<9; j++){
            if(check(data, i, j)){
                data[i] = 0;
                data[j] = 0;
                break;
            }
            else
                continue;
        }
    }

    for(int i=0; i<9; i++){
        if(data[i] != 0)
            cout << data[i] << '\n';
    }

    return 0;
}