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 |