문제 링크입니다: https://www.acmicpc.net/problem/2309
9명의 난쟁이의 합을 우선 구하고 두명의 난쟁이의 키를 뺐을 때 최초로 합이 100이된 경우를 출력해주면 되는 간단한 브루트포스 문제였습니다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int MAX = 9;
vector<int> dwarfHeight;
int sum = 0;
void snowWhite(void)
{
for (int i = 0; i < 9; i++)
{
for (int j = i + 1; j < 9; j++)
{
//9명 난쟁이 합 중 두명의 난쟁이 합을 뺐을 때 100이 되면
if (sum - dwarfHeight[i] - dwarfHeight[j] == 100)
{
for (int k = 0; k < 9; k++)
if (k != i && k != j)
cout << dwarfHeight[k] << endl;
return;
}
}
}
}
int main(void)
{
for (int i = 0; i < MAX; i++)
{
int temp;
cin >> temp;
dwarfHeight.push_back(temp);
sum += temp; //모든 난쟁이 합을 우선 구한다
}
sort(dwarfHeight.begin(), dwarfHeight.end()); //미리 정렬
snowWhite();
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > BOJ' 카테고리의 다른 글
백준 1256번 사전 (0) | 2018.06.17 |
---|---|
백준 1182번 부분집합의 합 (0) | 2018.06.16 |
백준 15720번 카우버거 (0) | 2018.06.15 |
백준 1916번 최소비용 구하기 (0) | 2018.06.15 |
백준 13703번 물벼룩의 생존확률 (0) | 2018.06.15 |