반응형
음 이것도 15649번에 이어 수열이긴 한데, 뭐라고 부르는진 모르겠다.
이번엔 저번과 달리 같은 값을 여러번 뽑아도 된다.
그래서 check의 존재를 모두 지워버렸다. 그럼 풀림.
#include <stdio.h>
#include <stdlib.h>
// 15651번. 이것도 순열이긴 한데... 뭐라고하지?
int *b; // 메인 배열의 포인터
int total; //전체에서
int nx; // 몇개뽑을지
int *key; // 뽑은 값 순서대로 저장할 배열 역할해줄(배열 주소를 가질) 포인터.
int p = 0; // key iterator
void Printt() {
for(int i = 0; i < nx; i++) {
printf("%d ", key[i]);
}
putchar('\n');
p--; // 출력한 뒤 하나 감소.
}
// count = 뽑은 갯수
void su(int *x, int count) {
if(nx == count) {
Printt();
return;
}
else {
for(int i = 0; i < total; i++) {
key[p++] = i + 1; // 뽑은값(i는 1부터이므로 +1) 배열에 추가.
su(x, count + 1);
}
p--;
}
}
int main() {
scanf("%d %d", &total, &nx);
b = calloc(total, sizeof(int));
key = calloc(nx, sizeof(int));
for(int i = 0; i < total; i++) {
b[i] = i + 1; // 1부터 시작이므로.
}
su(b, 0);
free(b);
free(key);
}
반응형
'[백준]' 카테고리의 다른 글
[BaekJoon/백준] 9663번 (0) | 2020.12.07 |
---|---|
[BaekJoon/백준] 15652번 (0) | 2020.12.06 |
[BaekJoon/백준] 15650번 (0) | 2020.12.05 |
[BaekJoon/백준] 15649번 (0) | 2020.12.05 |
[BaekJoon/백준] 10814번 (0) | 2020.12.03 |