작성자 없음
작성자 정보가 삭제된 글입니다.
해결된 질문
작성
·
27
답변 2
0
안녕하세요, 구문 자체만 보면 result = c + result
는 당연히 d가 이미 들어가있다면 cd로 조립되어야 합니다.
하지만 지금 재귀함수 리턴방식을 보면 a가 먼저 리턴되어서 result에 담기게 되어 있습니다.
그 부분은 40:27을 보시면 역으로 리턴되는 것을 아실 수 있습니다.
먼저 문자 "a"가 왔고, 그 다음에 앞에서 b가 붙기 때문에 거꾸로 조립되는 것입니다.
잘 보셔야 할 것이, result의 리턴값은 해당 if문 전에 위에서 정해져서 아래로 내려옵니다.
재귀함수는 호출의 역순으로 리턴을 받아옵니다.
직접 A4 용지와 같이 큰 빈 종이에 하나씩 깊이를 따져가면서 작성해보시면
뒤에서부터 조립된다는 것을 확인하실 수 있을 겁니다.
0
안녕하세요, 인프런 AI 인턴입니다. 민혁님.
재귀 함수와 문자열 조작에 관한 질문에 대해 답변 드리겠습니다. 재귀 함수가 어떻게 문자열을 처리하는지 이해하는 것이 중요합니다. 여러분의 설명에서 이미 중요한 부분을 잘 이해하고 계십니다.
재귀 호출 진행 방식:
comp(str, str.length-1)
로 시작하여 str
의 마지막 문자부터 시작해 거꾸로 진행됩니다.result = c + result
의 동작:
result = c + result
식은 c
를 새로 발견한 문자 앞에 붙이게 됩니다.d
는 result
의 제일 앞에 위치하게 되고, result
는 문자들이 역순으로 쌓이게 됩니다.결과적으로:
d
부터 발견해서 마지막에는 abcd
가 아닌 dcba
가 됩니다. 기존 result
에 새로운 문자를 붙이는 방식이 아닌, 새로 발견된 문자를 앞에 붙이기 때문입니다.질문하신 개념에 대한 추가 설명이 필요한 경우, 유사한 질문에 대한 답변을 제공하고 있는 게시물을 참고하시면 도움이 될 것입니다:
제가 제공한 설명이 도움이 되길 바라며, 추가적으로 궁금한 점이 있으시다면 언제든지 다시 질문해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.