강의

멘토링

커뮤니티

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

크아앙님의 프로필 이미지
크아앙

작성한 질문수

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

순열 구하기 중 몇 개를 뽑을지 선택

작성

·

206

0

  1. next_permutation으로 순열을 구하는 것을 보니 n개 중 n개를 뽑아 순열을 만드는 것만 가능한 것처럼 보입니다. 만약 4개 중 3개만 뽑아 순열을 구한다면, 어떻게 할 수 있을까요?
    ex) Python의 permutations([1,2,3], 2)

 

  1. 조합 구하는 방법으로 재귀와 중첩 for문을 소개해주셨는데, 따로 찾다 보니 next_permutation을 응용한 방법도 있더라구요. (Gist로 코드 공유합니다) 이런 방법이 재귀나 중첩 반복문에 비해 더 나아보이는 데 어떻게 생각하시나요?

     

답변 1

0

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

  1. next_permutation으로 순열을 구하는 것을 보니 n개 중 n개를 뽑아 순열을 만드는 것만 가능한 것처럼 보입니다. 만약 4개 중 3개만 뽑아 순열을 구한다면, 어떻게 할 수 있을까요?
    ex) Python의 permutations([1,2,3], 2)

A. 재귀함수를 사용하면 됩니다. 교안 - makePermutation 함수를 참고해주세요.

 

  1. 조합 구하는 방법으로 재귀와 중첩 for문을 소개해주셨는데, 따로 찾다 보니 next_permutation을 응용한 방법도 있더라구요. (Gist로 코드 공유합니다) 이런 방법이 재귀나 중첩 반복문에 비해 더 나아보이는 데 어떻게 생각하시나요?

A. 이건 더 낫지 않은 코드입니다. 조합을 뽑아야 하는데 더 시간이 많이 걸리는 순열을 쓴 코드에요.

 

감사합니다.

크아앙님의 프로필 이미지
크아앙

작성한 질문수

질문하기