본문 바로가기
반응형

[알고리즘 + 자료구조]/[백준]214

[BaekJoon/백준] 15652번 연속 4번째 비슷한 유형의 '순열과 조합' 문제 이번 문제는 조합문제인데, 같은 수를 여러 번 뽑아도 되는 문제다. 뽑은 결과의 중복은 없어야 하지만, 같은 수를 여러번 뽑아도 된다는 것. 바로 이전 문제인 15651번에 변수 하나를 추가하여 문제를 풀 수 있었다. #include #include // 15652번. 이 문제는 조합 알고리즘 기반이고, 같은 수를 여러번 골라도 된다는 사항이 있다. // 15651번에서 su 함수에 이터레이터 역할을 해줄 n만 추가해줬다. (뒤로는 안가며, 나 자신부터 다시 뽑을 수 있도록 돌리게끔 해줌) int *b; // 메인 배열의 포인터 int total; //전체에서 int nx; // 몇개뽑을지 int *key; // 뽑은 값 순서대로 저장할 배열 역할해줄(배열.. 2020. 12. 6.
[BaekJoon/백준] 15651번 음 이것도 15649번에 이어 수열이긴 한데, 뭐라고 부르는진 모르겠다. 이번엔 저번과 달리 같은 값을 여러번 뽑아도 된다. 그래서 check의 존재를 모두 지워버렸다. 그럼 풀림. #include #include // 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--; // 출력한 뒤 하나 감소. } /.. 2020. 12. 5.
[BaekJoon/백준] 15650번 이번엔 순열과 조합에서 조합문제다. 이전 15649번에서 처음에 조합으로 알고 잘못 푼 게 여기서 쓰인다. 이전 게시글의 조합 알고리즘보다 코드를 조금 더 다듬었다. #include #include // 조합 문제. 15650번 int *check; int *b; int total; //전체에서 int nx; // 몇개뽑을지 void Printt() { for(int i = 0; i < total; i++) { if(check[i]) printf("%d ", b[i]); } putchar('\n'); } // n = 이터레이터, count = 뽑은 갯수 void su(int *x, int n, int count) { if(nx == count) { Printt(); return; } else { for(.. 2020. 12. 5.
[BaekJoon/백준] 15649번 순열과 조합 문제. 첨에 조합 문제인 줄 알고 아래처럼 코딩했다 #include #include // 조합 문제. 15649번 int *check; int *b; int total; //전체에서 void Printt() { for(int i = 0; i < total; i++) { if(check[i]) printf("%d ", b[i]); } putchar('\n'); } // size = 배열 크기, n = 이터레이터, max = 뽑을 갯수, count = 뽑은 갯수 void su(int *x, int size, int n, int max, int count) { if(max == count) { Printt(); return; } else { for(int i = n; i < size; i++) {.. 2020. 12. 5.
반응형