공부혜옹

백준 15657 N과 M (8) 본문

공부합시다/Algorithm

백준 15657 N과 M (8)

Blair06 2021. 11. 16. 19:47

재귀를 이용해 모든 수의 조합을 구하면 되는 문제였다. 단, 수열의 길이제한이 있으므로 해당 조건은 탈출조건으로 설정한다

#include <iostream>
#include <algorithm>
#include <string.h>
#include <vector>
using namespace std;

int n, m;
int arr[9];
int ans[9];

void func(int index, int cnt){
    if(cnt == m) {
        for(int i=0; i<m; i++){
            cout << ans[i] << " ";
        }
        cout << endl;
        return;
    }
    for(int i = index; i < n;i++){
            ans[cnt] = arr[i];
            func(i,cnt+1);     
    }
    
  
}
int main(void){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> m;
   
    for(int i=0; i<n; i++) {
        cin >> arr[i];
    }
    sort(arr,arr+n);
    func(0,0);
    return 0;
}
반응형

'공부합시다 > Algorithm' 카테고리의 다른 글

백준 15666 N과 M (12)  (0) 2021.11.16
백준 15663 N과 M (9)  (0) 2021.11.16
백준 13915 현수의 열기구 교실  (0) 2021.11.01
백준 18119 단어암기  (0) 2021.10.31
백준 9372 상근이의 여행  (0) 2021.10.26
Comments