9명의 난쟁이중 7명의 난쟁이를 찾는 문제이다.
7명의 난쟁이의 합이 100이므로 9명이 난쟁이의 합을 구한뒤 이중 반복문을 통해 두명의 난쟁이를 빼보면서 100이 맞는 경우를 찾는 완전 탐색으로 해결하면 된다.
이중 for문은 flag 변수를 통해 탈출하였다.
#include <bits/stdc++.h>
int arr[9];
int main()
{
int flag=0, sum = 0;
for (int i = 0; i < 9; i++)
{
scanf("%d", &arr[i]);
sum += arr[i];
}
std::sort(arr, arr + 9);
for (int j = 0; j < 8; j++)
{
for(int k = j +1 ; k < 9; k++)
{
if (sum - arr[j] - arr[k] == 100)
{
arr[j] = 0;
arr[k] = 0;
flag++; // 이중 반복문을 탈출하기 위한 조건
break; // 이 조건으로는 안쪽 반복문만 탈출가능
}
}
if (flag)
break;
}
for (int i = 0; i < 9; i++)
if(arr[i])
printf("%d\n", arr[i]);
}