본문 바로가기
[백준]

[BaekJoon/백준] 15651번

by Hevton 2020. 12. 5.
반응형

음 이것도 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