2주차(완전탐색) - [C++]백준2309 일곱 난쟁이
문제
예제 입력
코드
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[9];
int sum = 0;
int result;
for (int i = 0; i < 9; i++) {
cin >> arr[i];
sum += arr[i];
}
sort(arr, arr + 9);
result = sum - 100;
int a = 0, b = 8;
while (true) {
int out = arr[a] + arr[b];
if (out == result)
break;
else if (out < result)
a++;
else
b--;
}
for (int i = 0; i < 9; i++) {
if(i != a && i != b)
cout << arr[i] << endl;
}
}
설명
9명의 난쟁이중에서 2명의 난쟁이를 찾는 것으로 접근하면 쉽게 풀 수 있습니다. 7명의 난쟁이의 키합이 100이니 9명을 합친 값에서 100을 뺀후에 값의 조건을 만족하는 2명의 난쟁이를 골라내어 출력에서 제외시킵니다.
<algorithm>
-sort(시작, 끝, 비교함수) : 배열의 크기만큼 정렬