인프런 커뮤니티 질문&답변

Windfall님의 프로필 이미지
Windfall

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

1주차 개념 #10. 구현

2309 뭐가 틀린건지 모르겠습니다.

작성

·

407

0

재귀함수연습을 좀 해본다고

재귀함수로 콤비네이션을이용해서 짜봤는데

백준 질문 게시판에있는 예시들은 다 정답으로 나오는데

자꾸 틀렸다는데 이유를 모르겠네요..

#include <bits/stdc++.h>
using namespace std;

// 9명의 난쟁이 중에서 
// 순서에 상관없이 2명을 고르고 전체에서 빼기 후 100이 되는걸 구하는 방법
// 재귀함수로 작성해보기


int input[9];
int sum;
vector<int> temp;
pair<int, int> ret;
void Combination(int* arr, int start)
{
	if (temp.size() == 2)
	{
		if ((sum - temp[0] - temp[1]) == 100)
		{
			ret = { temp[0], temp[1] };
			return;
		}
	}

	for (int i = start + 1; i < 9; ++i)
	{
		temp.push_back(input[i]);
		Combination(arr, i);
		temp.pop_back();
	}
	return;
}

int main()
{
	for (int i = 0; i < 9; ++i)
	{
		cin >> input[i];
		sum += input[i];
	}
	sort(input, input + 9);
	Combination(input, -1);
	for (int i = 0; i < 9; ++i)
	{
		if (input[i] == ret.first || input[i] == ret.second)
			continue;

		cout << input[i] << '\n';
	}

}

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ㅎㅎ

정확히 정답으로 뜨는 코드인데요?

잘 짜셨습니다.

http://boj.kr/0e3f1dc0062449d19f5125e2f440b9e1

또 질문 있으시면 언제든지 질문 부탁드립니다.

감사합니다.

강사 큰돌 올림.

Windfall님의 프로필 이미지
Windfall

작성한 질문수

질문하기