- N과 M 시리즈 8번째 문제. 역시나 거의 비슷한 유형에 포인트만 살짝 다르다.
#include <iostream>
#include <algorithm>
using namespace std;
int n, m;
int arr[9];
int ans[9];
void check(int cur, int size)
{
if(size == m)
{
for(int i = 0 ; i < m ; i++)
{
cout << ans[i] << " ";
}
cout << '\n';
return;
}
for(int i = cur ; i < n ; i++) // 비내림차순이고 같은 수를 여러번 골라도 되므로, 현재 인덱스부터 탐색
{
ans[size] = arr[i];
check(i, size + 1); // 다음 자리 탐색
}
}
int main(void)
{
cin.tie(0);
cout.tie(0);
ios_base::sync_with_stdio(0);
cin >> n >> m;
for(int i = 0 ; i < n ; i++)
{
cin >> arr[i];
}
sort(arr, arr + n);
check(0, 0); // 첫 인덱스를 0 으로 시작해야함
}
'PS > BOJ' 카테고리의 다른 글
[백준] 11053.cpp : 가장 긴 증가하는 부분 수열 (0) | 2020.07.26 |
---|---|
[백준] 1016.cpp : 제곱 ㄴㄴ 수 (0) | 2020.07.26 |
[백준] 15654.cpp : N과 M (5) (0) | 2020.07.24 |
[백준] 15652.cpp : N과 M (4) (0) | 2020.07.23 |
[백준] 2407.cpp : 조합 (0) | 2020.07.22 |