작성
·
1.2K
0
좋은 강의 감사드립니다!
헷갈려서 질문드립니다!
해당 강의에서 소개해주시는 next_permutation과 makePermutation은 nPr을 구하는 식에서 n과 r의 값이 같은 경우에만 사용할 수 있는게 맞을까요?
n = 3, r = 3인 경우에만 사용할 수 있는 것인지, n = 3, r = 2에서도 사용할 수 있는 것인지 궁금합니다.
makePermutation()에서는 vector의 값과 r의 값을 변경해가면서 해봤는데 제가 생각하는 것처럼 동작하지 않아서 질문드립니다! 감사합니다!
답변 1
1
안녕하세요 ㅎㅎ
n = 3, r = 3인 경우에만 사용할 수 있는 것인지, n = 3, r = 2에서도 사용할 수 있는 것인지 궁금합니다.
>> 네 가능합니다.
makePermutation()에서는 vector의 값과 r의 값을 변경해가면서 해봤는데 제가 생각하는 것처럼 동작하지 않아서 질문드립니다! 감사합니다!
>> 흠.. 코드 올려서 다시 질문주세요. ㅎㅎ 코드올릴 때는 질문하는 법 참고해서 부탁드려요(이런 예제같은 경우는 아무 문제에다가 코드 제출 후 공유버튼 누르시면 됩니다. 감사합니다.)
지금 이코드는 재귀함수와 next_permutation을 혼용해서 쓰고 있어요. 하나만 쓰셔야 합니다. 이렇게 하면 됩니다.
#include <bits/stdc++.h>
using namespace std;
vector<int> v;
void printV(vector<int> &v) {
for (unsigned long i = 0; i < 2; i++){
cout << v[i] << " ";
}
cout << "\n";
}
int main() {
for (int i = 1; i <= 4; i++) v.push_back(i);
do{
printV(v);
} while(next_permutation(v.begin(), v.end()));
return 0;
}
https://www.acmicpc.net/source/share/8ba568b2bcc04f53af374552d71bd685
링크 공유 드립니다!
4개의 요소 중 2개의 요소를 뽑을 때 "순서"가 있는 경우의 수를 구하고 싶습니다.
감사합니다