교안 p147 내용 질문 있습니다!!
241
작성한 질문수 6
선생님 안녕하세요!! 다름이 아니라 p147의 재귀를 이용한 순열에서 코드 질문이 있어 질문 남깁니다.!!
swap(a[i], a[depth]);
makePermutation(n, r, depth + 1);
swap(a[i], a[depth]);여기서 마지막에 swap함수를 한번 더 사용하는지 이유를 잘 모르겠습니다. 결국에 중간에 재귀함수로 돌면서 종료조건을 지키면 마지막에 swap을 한번 더 하는 의미가 무엇인지 모르겠습니다!! 알려주시면 감사하겠습니다!!!
답변 2
0
안녀앟세요 ㅎㅎ
swap은 배열의 상태를 이전 상태로 복원하기 위한 것입니다.
재귀함수가 구성된 호출 스택에서 한 단계가 끝나고 이전 단계로 돌아갈 때 원본 배열의 순서를 유지하기 위해 필요합니다.
해당 부분은 제 강의내에 이부분 참고 부탁드립니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
재귀를 이용한 순열 구현에 관한 질문은 일반적으로 순열 알고리즘을 이해하고 구현하는 데에 종종 나타나는 문제입니다. 질문하신 부분은 재귀함수를 사용해 순열을 생성할 때, 한 단계의 순열을 생성한 뒤에 원래 상태로 되돌리기 위해 사용하는 ‘백트래킹(Backtracking)’ 기법과 관련이 있습니다.
제공된 링크 중 “안녕하세요! 재귀함수에 관해서 질문드립니다“에서 같은 문제를 다루는 내용의 답변이 있습니다. 해당 답변에서 강사님은 두 번의 swap 호출 사이에서 makePermutation 재귀함수를 호출하는 것이 순열을 생성하는 과정이며, 마지막 swap은 배열의 상태를 이전 상태로 복원하기 위한 것임을 설명하셨습니다. 이 과정은 재귀함수가 구성된 호출 스택에서 한 단계가 끝나고 이전 단계로 돌아갈 때 원본 배열의 순서를 유지하기 위해 필요합니다.
추가로 강사님이 제공한 디버깅 코드를 통해 실행 과정을 보며 이해할 수 있도록 제안하셨습니다. 해당 디버깅 예제는 순열 생성 과정을 단계별로 나타내어 프로그래머가 순서의 변경과 복원 작업을 시각적으로 확인할 수 있도록 돕습니다.
본 답변이 sangwoo8221님의 질문에 도움이 되었기를 바랍니다. 추가적인 궁금증이 있다면 주저하지 말고 물어보세요. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
코딩살구클럽 입장이 안됩니다
0
26
2
4-F 경우의 수 질문입니다.
0
26
2
코딩살구클럽 가입이 안됩니다.
0
53
2
살구 클럽에 대한 질문있습ㄴ디ㅏ
0
42
1
교안 158페이지 문의드립니다
0
37
2
코딩살구클럽 관련 건의사항
0
98
1
코살에 19942 다이어트 문제에 N의 범위가 빠져있슴니다
0
40
1
진행 방법 질문드립니다!
0
72
2
2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.
0
61
2
2주차 개념#12 트리 순회
0
32
2
백준사이트가 종료된다고 합니다.
0
303
2
백준 서비스 종료
9
923
1
sk 하이닉스 코테 대비
0
379
2
3-G 최댓값 질문
0
52
1
모듈러 연산 값이 10이 아닌 경우도 있지 않나요?
0
84
2
3-I 코드 질문드립니다.
0
63
2
3-N 질문 있습니다.
0
68
2
학습방법
0
104
2
4-H 질문 있습니다 (코드 리뷰)
0
67
2
코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.
0
178
2
2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.
0
70
2
2주차 개념 #4-2. 인접행렬 질문있습니다.
0
65
2
1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.
0
52
2
조합 재귀 풀이 확인 해주시면 감사하겠습니다.
0
70
2





