처음에는 난쟁이 경우의 수를 세워보면서 문제를 풀어보려고 했었는데, 사실 조금 단순하게 생각 해 보면 난쟁이 두 명의 키를 전체 값에서 빼면 되는 문제이다. 그래서 난쟁이 두명의 키를 뺀 값이 100이 되었을 때 값을 출력 해 주게끔 만들었다.
//
// Created by 전시은 on 2023/03/08.
//
// 문제 :: 일곱 난쟁이
// 링크 :: https://www.acmicpc.net/problem/2309
// 입력 :: 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
// 출력 :: 일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를 찾을 수 없는 경우는 없다.
#include "../Problems.h"
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
//int main()
int Solve2309()
{
cout << "[디버깅용] Solve2309 :: 시작지점 >> \n";
cin.tie(NULL);
ios_base::sync_with_stdio(false);
vector<int> vInputs;
int nSum = 0;
for(int i = 0; i < 9; i++)
{
int nInput;
cin >> nInput;
nSum += nInput;
vInputs.push_back(nInput);
}
sort(vInputs.begin(), vInputs.end());
for(int i = 0; i < 8; i++)
{
for(int j = 0; j < 9; j++)
{
if(nSum - vInputs[i] - vInputs[j] == 100)
{
for(int k = 0; k < 9; k++)
{
if(k == i || k == j)
{
continue;
}
cout << vInputs[k] << "\n";
}
return 0;
}
}
}
return 0;
}