인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Seob님의 프로필 이미지

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

[필수개념] 순열 : 개념과 next_permutation

nPr에서 의미없는 연산을 건너뛸 방법이 있을까요?

해결된 질문

작성

·

88

0

n개의 원소 중 r개 원소로만 이루어진 순열 결과를 얻고 싶어 간단한 수정을 해보았습니다.

basics-next permutaiton.png.webp

set이 중복값을 없애주기에 원하는 결과는 얻었지만, 필요없는 연산을 줄이는 방법은 모르겠습니다.
(0,1,5에서 바로 다음 연산값인 0,1,9를 찾는 게 아니라, 실제로는 <0,1,5,9,15>의 다음 순열값인 <0,1,5,15,9>를 찾고있음)

답변 1

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ㅎㅎ

set이 중복값을 없애주기에 원하는 결과는 얻었지만, 필요없는 연산을 줄이는 방법은 모르겠습니다.
-> 순열은 말그대로 순서와 관계있는 조합을 탐색해나가기 때문에 해당 방법으로는 없습니다. 순차적으로 탐색하는 것 뿐이죠 ㅎㅎ

다만, 순서와 상관없는 조합을 원하시면 nCr 조합을 구현하시면 될 것 같습니다.

 

감사합니다.

 

Seob님의 프로필 이미지

작성한 질문수

질문하기