[백준]: 2309번: 일곱 난쟁이 / 완전 탐색(Brute-force Search)
https://www.acmicpc.net/problem/2309
해결순서
1. result로 입력받은 9개의 난쟁이 키를 합친다.
2. 9C2=36가지 밖에 경우의 수가 발생할 수 없기에 2중포문으로 완전탐색을 실시한다. (2명을 제외하면 일곱난쟁이 이므로)
3. 조건 중 가능한 정답이 여러가지인 경우에 아무거나 출력하라고 했으므로 check변수를 통해서 초기에 바로 구해진 2개의 index값을 MAX로 초기화하고 for문을 탈출한다.
4. 정렬 후 출력!
#include<iostream>
using namespace std;
#include<algorithm>
int arr[10];
int n,result = 0;
#define MAX 987654321
bool check = false;
int main()
{
for (int i = 1; i <= 9; i++)
{
cin >> arr[i];
result += arr[i];
}
for (int i = 1; i <= 9; i++)
{
for (int j = i+1; j <= 9; j++)
{
if ((result - arr[i] - arr[j]) == 100)
{
arr[i] = MAX;
arr[j] = MAX;
check = true;
break;
}
}
if (check)
break;
}
sort(arr, arr + 10);
for (int i = 1; i <= 7; i++)
{
if(arr[i]!=MAX)
cout << arr[i] << endl;
}
return 0;
}