728x90
반응형
문제
해결방법
DFS를 이용하여 모든 경우의 수를 구한다.
코드
int N, R,cnt=0;
vector<int>per;
vector<int>temp;
vector<bool>check;
void perDFS(int level)
{
if (R == temp.size())
{
for (int i=0;i<R;i++)
{
cout << temp[i] << " ";
}
cout << endl;
cnt++;
}
else
{
for (int i =0; i < N; i++)
{
if (check[i] == false)
{
check[i] = true;
temp.push_back(per[i]);
perDFS(i+1);
temp.pop_back();
check[i] = false;
}
}
}
}
int main()
{
int x;
cin >> N>>R;
check.resize(N,false);
for (int i=0;i<N;i++)
{
cin >> x;
per.push_back(x);
}
perDFS(0);
cout << cnt;
}
728x90
반응형
'알고리즘 문제' 카테고리의 다른 글
알고리즘문제) 휴가(SW역량평가 기출) (0) | 2023.07.05 |
---|---|
알고리즘 문제)2292번 벌집 (0) | 2023.07.03 |
DFS)합이 같은 부분집합 (0) | 2023.04.05 |
DFS)부분집합 (0) | 2023.04.05 |
댓글