#include <iostream>
#include <algorithm> // sort
using namespace std;
int arr[9] = {0};
int sum;
int main(int argc, char** argv){
for(int i = 0; i < 9; i++){
scanf("%d", &arr[i]);
sum += arr[i];
}
sort(arr, arr + 9);
int ans = sum - 100;
for(int i = 0; i < 9; i++){ // 브루트포스
for(int j = i; j < 9; j++){
if(arr[i] + arr[j] == ans){
for(int k = 0; k < 9; k++){
if(k != i && k != j){
printf("%d\n", arr[k]);
}
}
return 0; // 하나만 출력
}
}
}
return 0;
}
브루트포스 연습용 문제.
9개 중 7개를 전부 찾는 것은 힘들다고 생각했다. 때문에 합이 100이 되는 것을 찾기 위해서는 역설적으로 2개를 빼서 100이 되는 경우를 찾아야한다고 생각했다.
브루트포스 알고리즘을 사용해서 for문 2개로 돌아가며 2개를 찾는다. 만약 둘을 빼서 100이 된다면 for문을 돌아 처음부터(정렬되었기 때문에 가능하다) 찾은 두 수를 제외하고 출력한다.
정답이 여러가지인 경우 하나만 출력하면 되기 때문에 출력이 끝나면 종료시킨다.