백준 알고리즘 문제 풀이 c/c++ -2309-

한창희·2021년 8월 11일
0

백준 알고리즘

목록 보기
2/16

https://www.acmicpc.net/problem/2309

#include <stdio.h>
#include <algorithm>

using namespace std;


int arr[10] = { 0, };  // 입력값 담을 배열
bool visited[10] = { 0, }; // 뺐는지 체크

int answer[7] = { 0, };  // 정답 7개 원소 담을 배열

void getResult(int x) {  // x번째를 빼는 재귀 함수
	if (x >= 3) {
		int sum = 0;
		for (int i = 1; i <= 9; i++) {
			if (visited[i] == false)
				sum += arr[i];
		}
		if (sum == 100) {
			int index = 0;
			for (int i = 1; i <= 9; i++) {
				if (visited[i] == false) {
					answer[index++] = arr[i];
				}
			}
			return;
		}
	}
	else {
		for (int i = 1; i <= 9; i++) {
			if (visited[i] == false) {
				visited[i] = true;
				getResult(x + 1);
				visited[i] = false;
			}
		}

	}

}


int main() {

	for (int i = 1; i <= 9; i++) {
		scanf("%d", &arr[i]);
	}

	getResult(1);

	sort(answer, answer + 7);


	for (int i = 0; i < 7; i++) {
		printf("%d\n", answer[i]);
	}


	return 0;
}
profile
매 순간 최선을 다하자

0개의 댓글