본문 바로가기

Programming/BOJ

[백준/C++] 백준 2309번: 일곱 난쟁이

이중 for문 탈출에 유의해야한다. 9명 중 7명을 찾는 것은 반대로 2명을 찾아 없애는 것과 같다는 것을 이용해서 풀었다. 이중 for문은 flag를 이용해서 탈출했다.

 

#include <iostream>
#include <algorithm>
using namespace std;

int a[9];
int main() {

	int sum = 0;
	for (int i = 0; i < 9; i++) {
		cin >> a[i];
		sum += a[i];
	}


	int flag = 0;
	int charge = sum - 100;
	for (int i = 0; i < 9; i++) {
		for (int j = 0; j < 9; j++) {
			if (i == j)continue;
			if (a[i] + a[j] == charge) {
				a[i] = 9999;
				a[j] = 9999;
				flag = 1;
				break;
			}
		}

		if (flag == 1) break;
	}
	
	sort(a, a + 9);

	for (int i = 0; i < 7; i++) {
		cout << a[i] << endl;
	}




	return 0;
}