작성
·
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
또 질문 있으시면 언제든지 질문 부탁드립니다.
감사합니다.
강사 큰돌 올림.