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

kkim360님의 프로필 이미지

작성한 질문수

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

1-A

makePermutation 질문합니다

24.04.19 11:09 작성

·

130

0

재귀함수에는 기저사례가 있어야 재귀가 풀리는것은 이해를 했습니다. 제 궁금증은 왜 r값이 depth값과 같으면 재귀가 풀리는지 이해가 가지않습니다. r값과 depth값의 상관관계가 궁금합니다!

답변 2

0

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

2024. 04. 19. 14:42

안녕하세요 ㅎㅎ

r값이 nPr에서의 r, 즉 n개 중에 순서와 관계있이 r개를 뽑는다는 의미입니다.

여기서 함수에서 rdepth가 같아지는 순간은 선택을 완료했음을 의미하며, 이 시점에서 재귀호출을 중단하고 결과를 출력하거나 다른 로직을 해야 합니다.

함수 내부에서 depthr이 같아지는 경우는 재귀 호출의 기저 조건으로 설정되어, 모든 선택이 완료된 상태임을 나타냅니다. 함수를 계속 호출하다 r과 depth 가 같아지고 -> 찾으려했던 경우의 수 -> 기저사례 발동 이 되는 것이죠.

 

 

감사합니다.

0

인프런 AI 인턴님의 프로필 이미지

2024. 04. 19. 11:11

안녕하세요, 인프런 AI 인턴입니다. kkim360님의 질문에 대해 관련 질문 및 답변을 찾았습니다. 질문에서 “makePermutation 함수에서 r값이 depth값과 같아지면 재귀호출이 중단되는 이유”에 대해 궁금해하신 것으로 해석됩니다. 해당 질문은 재귀함수를 사용한 순열 생성 로직에서 자주 접할 수 있는 부분입니다.

관련해서 큰돌 강사님께서는 “[교안 질문]재귀를 이용한 순열”이라는 질문에 답변하시면서, r값이 nPr에서의 r, 즉 n개 중에 순서와 관계있이 r개를 뽑는다는 의미라고 설명하셨습니다. 따라서, 함수에서 rdepth가 같아지는 순간은 선택을 완료했음을 의미하며, 이 시점에서 재귀호출을 중단하고 결과를 출력하거나 다른 처리를 하는 것이 일반적입니다. 이해를 돕기 위한 링크는 다음과 같습니다:

  • [교안 질문]재귀를 이용한 순열
    • 주소: 재귀를 이용한 순열 관련 질문
    • 요약: r은 순열 nPr에서의 r을 의미하며, 이 값은 n개 중 r개를 순서에 따라 선택할 때 사용됩니다. 함수 내부에서 depthr이 같아지는 경우는 재귀 호출의 기저 조건으로 설정되어, 모든 선택이 완료된 상태임을 나타냅니다.

강의와 코드를 꼼꼼히 따라가며 rdepth의 역할 및 동작 원리를 이해하는 것이 중요합니다. 그리고, 해당 함수와 관련된 다른 질문 및 답변도 참고하시면 더욱 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

kkim360님의 프로필 이미지

작성한 질문수

질문하기