728x90
반응형
문제
내가 작성한 코드 (C++ 성공)
#include <iostream>
using namespace std;
int sel[8];
int cnt;
int n, m;
int Comb(int index, int count){
if(count == m-n){
cnt++;
return 0;
}
for(int i=index; i<n; i++){
sel[count] = i+1;
Comb(i, count+1);
}
}
int main(){
cin >> n >> m;
Comb(0, 0);
cout << cnt << "\n";
return 0;
}
정리
이 문제는 경우의 수에 중복을 인정하지 않기 때문에
중복 조합으로 해결하거나 브루트 포스를 이용해서 풀 수 있는 문제였다.
나는 그래서 중복 조합에 대한 이해가 많이 부족하기 때문에 중복 조합 을 이용해서 풀어보았다.
사실 중복 조합에 대한 개념과 알고리즘에 대해서는 이번 문제로 처음 접한 것 같다.
재귀함수를 이용해서 중복 조합 알고리즘을 만들어서 해결했는데
중복 조합에 대해서 완벽하게 이해했다고 생각하지 않는다.
비슷한 문제를 여러 개 풀어봐야할 것 같다.
728x90
반응형
'알고리즘 > BaekJoon' 카테고리의 다른 글
[백준 알고리즘] 1874번 : 스택 수열 (0) | 2019.07.31 |
---|---|
[백준 알고리즘] 1920번 : 수 찾기 (0) | 2019.07.31 |
[백준 알고리즘] 17362번 : 수학은 체육과목입니다 2 (0) | 2019.07.31 |
[백준 알고리즘] 4948번 : 베르트랑 공준 (0) | 2019.07.21 |
[백준 알고리즘] 1476번 : 날짜 계산 (0) | 2019.07.21 |