작성
·
325
·
수정됨
답변 1
1
안녕하세요 세훈님 ㅎㅎ
순열을 재귀함수로 호출하는 과정에서 depth의 역할에 대해 잘 이해를 못 하겠습니다.
>>
for(int i = depth; i < n; i++){
cout << i << " : " << depth << "를 바꾼다!\n";
swap(a[i], a[depth]);
makePermutation(n, r, depth + 1);
cout << i << " : " << depth << "를 다시 바꾼다!\n";
swap(a[i], a[depth]);
}
이부분 말씀하시는 거죠? i와 depth의 순서를 바꾸는 것입니다. depth는 해당 depth와 바꾸기 위한 변수를 의미합니다.
그리고 for문안에서 순서의 흐름이 이해가 잘 가지 않습니다.
>>
for문안의 i = depth부터 시작해 n까지 바꾸는 것입니다. 예를 들어
0, 1, 2, 3, 4, 5가 있고 depth가 0이라면
0과 0
0과 1
0과 2
...
를 바꾸는 과정입니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.