작성
·
267
0
쌤. 위의 함수에서 r 파라미터를 사용하는 의미가 무엇인지 궁금합니다.
아래와 같이 r을 생략하고 n으로 대체해도 같은 결과를 얻을 수 있어 보여서요.
void makePermutation(int n, int depth){
if(n == depth){
printV(v);
return;
}
for(int i = depth; i < n; i++){
swap(v[i], v[depth]);
makePermutation(n,depth+1);
swap(v[i], v[depth]);
}
return;
}
답변 1
0
안녕하세요 JUNG님 ㅎㅎ
R은요
nPr에서의 r입니다. n개중에 순서와 관계있이 r개를 뽑는다는 의미입니다. 그렇기 때문에 꼭 r을 넣어주셔야 합니다.
제가 예시로 든 코드는요.
int main(){
for(int i = 0; i < 3; i++)v.push_back(a[i]);
makePermutation(3, 3, 0);
return 0;
}
n과 r이 같죠?
그래서 이부분은 같기 때문에 문제가 없지만 다른 문제들은 다를 수 있기 때문에 꼭 넣어주셔야 합니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.