해결된 질문
작성
·
67
0
제가 혼자 풀어봤는데요. 출력은 맞게 나오는 것 같은데 채점하면 자꾸 틀렸다고 나오네요. 그런데 아무리 봐도 뭐가 틀렸는지 모르겠습니다!! 도와주십쇼!!
#include <bits/stdc++.h>
using namespace std;
int n=9, k=7;
void print(vector<int> b, int a[]){
for(int i : b) cout << a[i] << endl;
cout << endl;
}
void combi(int start, vector<int> b, int a[]){
int sum=0;
if(b.size() == k){
for(int i : b) sum += a[i];
if(sum == 100){
print(b, a);
}
return;
}
for(int i = start+1; i<n; i++){
b.push_back(i);
combi(i, b, a);
b.pop_back();
}
return;
}
int main(){
vector<int> b;
int a[10];
for(int i=0; i<9; i++){
cin >> a[i];
}
sort(a, a+9);
combi(-1, b, a);
return 0;
}
답변 2
0
0
안녕하세요 제이크님 ㅎㅎ
if(b.size() == k){
for(int i : b) sum += a[i];
if(sum == 100){
print(b, a);
}
return;
}
이부분 때문인데요. 이 문제는 정답이 여러개일 수 있습니다. 즉, print를 한다음에 main함수를 종료하는 코드를 넣어야 합니다. print 밑에 exit(0); 을 추가해보시겠어요?
또한 이부분은 교안내 Q. process exit call이란? 를 참고 부탁드립니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.