void pick(int n,vector<int>&picked,int toPick)
{
if(!toPick)
{
//do something with picked
return ;
}
int smallest=picked.empty()?0:picked.back()+1;
for(int next=smallest;next<n;next++)
{
picked.push_back(next);
pick(n,picked,toPick-1);
picked.pop_back();
}
}
- 아주 간단하면서도 간혹 가다 이상하게 놓칠 수 도있는 조합 구현입니다.
- n개의 전체 원소의 수에서 앞으로 toPick개의 원소를 고르는 모든 방법을 고르는 pick()함수입니다.
- 모든 시뮬레이션,구현 문제의 근간이 되는 매우 중요한 코드 입니다.
'📑코드 포스트잇' 카테고리의 다른 글
여러개의 숫자 한줄로 받아 따로 저장하기 (1) | 2020.02.18 |
---|---|
경우의 수 구하기 (0) | 2020.01.29 |
펜윅 트리 (0) | 2020.01.09 |
그래프의 간선구분, 사이클 존재 여부 판단 (0) | 2020.01.09 |
절단점 찾기 (0) | 2020.01.09 |
void pick(int n,vector<int>&picked,int toPick)
{
if(!toPick)
{
//do something with picked
return ;
}
int smallest=picked.empty()?0:picked.back()+1;
for(int next=smallest;next<n;next++)
{
picked.push_back(next);
pick(n,picked,toPick-1);
picked.pop_back();
}
}
- 아주 간단하면서도 간혹 가다 이상하게 놓칠 수 도있는 조합 구현입니다.
- n개의 전체 원소의 수에서 앞으로 toPick개의 원소를 고르는 모든 방법을 고르는 pick()함수입니다.
- 모든 시뮬레이션,구현 문제의 근간이 되는 매우 중요한 코드 입니다.
'📑코드 포스트잇' 카테고리의 다른 글
여러개의 숫자 한줄로 받아 따로 저장하기 (1) | 2020.02.18 |
---|---|
경우의 수 구하기 (0) | 2020.01.29 |
펜윅 트리 (0) | 2020.01.09 |
그래프의 간선구분, 사이클 존재 여부 판단 (0) | 2020.01.09 |
절단점 찾기 (0) | 2020.01.09 |