2주차(완전탐색) - [C++]백준2309 일곱 난쟁이

2주차(완전탐색) - [C++]백준2309 일곱 난쟁이

백준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(시작, 끝, 비교함수) : 배열의 크기만큼 정렬

결과

오류


© 2022. All rights reserved. 신동민의 블로그