본문 바로가기
코테/백준

[백준] 15663 N과 M (9) - C++

by gayoungeeda 2023. 7. 27.
728x90

https://www.acmicpc.net/problem/15663

 

문제 설명


문제 풀이

#include<stdio.h>
#include<algorithm>
using namespace std;
int n, m;
int num[8], dab[8], chk[8];
void pro(int k) {
    if(k == m) {
        for(int i = 0; i < k; i++) {
            printf("%d ", dab[i]);
        }
        printf("\n");
        return;
    }

    int tmp = -1;
    for(int i = 0; i < n; i++) {
        if(chk[i] == 0 && tmp != num[i]) {
            tmp = num[i];
            chk[i]++;
            dab[k] = num[i];
            pro(k+1);
            chk[i] = 0;
        }
    }
}
int main()
{
    scanf("%d%d", &n, &m);

    for(int i = 0; i < n; i++) {
        scanf("%d", &num[i]);
    }

    sort(num, num+n);

    pro(0);
   
    return 0;
}

이전의 수를 저장하는 변수 tmp를 지역으로 잡아야하는데 전역으로 잡아서 한참 헤맨 문제..

'코테 > 백준' 카테고리의 다른 글

[백준] 1912 연속합 - C++  (0) 2023.07.27
[백준] 1931 회의실 배정 - C++  (0) 2023.07.27
[백준] 1182 부분수열의 합 - C++  (0) 2023.07.27
[백준] 15657 N과 M (8) - C++  (0) 2023.07.25
[백준] 15656 N과 M (7) - C++  (0) 2023.07.25