인프런 커뮤니티 질문&답변
안녕하세요 선생님, 1-A문제 질문 드립니다.
작성
·
193
0
먼저, 선생님의 풀이가 전부 이해되고 더 좋은 방법이란 것을 알았지만, 제 풀이가 틀린 이유를 알고 싶어 질문 드립니다.
저는 9가지의 수를 입력받아 1번벡터에 입력하고, 그 수들중 7가지의 수를 고른 조합들의 합이 100이 되는 경우
2번벡터에 입력하여 그를 출력하는 방식으로 풀이하였습니다.
제가 비주얼 스튜디오에서 코딩하였을 때는 결과값이 잘 도출되었는데, 백준에 제출하면 오답으로 처리되어 어느 부분이 문제인지 고민하다 선생님께 질문드려 봅니다. 제 코드 동봉하겠습니다.
#include <bits/stdc++.h> using namespace std; vector<int> v, vv; //v는 다 입력받고 vv는 결과용 int a = 9, b = 7; void printV(vector<int> vv2) { sort(vv2.begin(), vv2.end()); for (int i = 0; i < b; i++) { cout << vv2[i] << "\n"; } return; } void combi(int start, vector<int> v, vector<int> vv) { if (vv.size() == b) { int sum = 0; for (int i = 0; i < b; i++) { sum += vv[i]; } if (sum == 100) { printV(vv); } return; } for (int i = start + 1; i < a; i++) { vv.push_back(v[i]); combi(i, v, vv); vv.pop_back(); } return; } int main() { for (int i = 0; i < 9; i++) { int num; cin >> num; v.push_back(num); } cin.tie(NULL); cout.tie(NULL); combi(-1, v, vv); return 0; }






네 선생님,
https://www.acmicpc.net/submit/2309/47387275
입니다!