반응형
728x170
쉬운 문제다.
백트래킹의 전형적인 형태를 보여준다.
https://www.acmicpc.net/problem/6603
#맞은 풀이
#include <bits/stdc++.h>
using namespace std;
vector<int> vec;
//6개 뽑으면 종료 => 조건 사전순, 조합, 현재까지 뽑은 결과
void func(int cnt, vector<int> result, int cur){
if(cnt == 6){
for(auto c : result){
cout << c << " ";
}
cout << '\n';
return;
}
for(int i = 0; i<vec.size(); i++){
if(vec[i] <= cur)continue;
result.push_back(vec[i]);
func(cnt+1, result, vec[i]);
result.pop_back();
}
}
int main(){
while(1){
int x;
cin >> x;
if(x == 0)break;
for(int i = 0; i<x; i++){
int n;
cin >> n;
vec.push_back(n);
}
sort(vec.begin(), vec.end());
vector<int> res;
func(0, res, -1);
//초기화 시켜줘야 재활용가능
vec.clear();
cout << '\n';
}
return 0;
}
728x90
반응형
그리드형
'문제풀이(Problem Solving)' 카테고리의 다른 글
백준, BOJ, 1245번, 농장 관리 C++ [CPP] ★★★ (0) | 2022.06.16 |
---|---|
백준, BOJ, 14225번, 부분수열의 합 C++ [CPP] ★★ (0) | 2022.06.14 |
백준, BOJ, 2529번, 부등호 C++ [CPP] ★★ (0) | 2022.06.13 |
백준, BOJ, 14226번, 이모티콘 C++ [CPP] ★★★ (0) | 2022.06.04 |
프로그래머스 카카오, 괄호 변환 C++ [CPP] ★★★ (0) | 2022.05.11 |