35q분
54
작성자 없음
작성한 질문수 0
comp 메서드에 매개변수가 들어갈 때, str.length-1로 들어가면 뒤에서부터 재귀함수가 시작해서 d부터 들어가고 c b a가 순서대로 들어가야하는 것 처럼 보이는데요.
이때, if문 안에서 result = c + result 로 되어 있는데요. result에 이미 d가 들어가있다고 가정했을 때 식이 진행되면 result = "cd"가 되는 것인지 result = "dc"가 되는 것인지 궁금합니다. 만약 전자라면 정답이 abcd가 되어야 하는 것이 아닌가요? index 마지막부터 시작되니까요.
답변 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에 새로운 문자를 붙이는 방식이 아닌, 새로 발견된 문자를 앞에 붙이기 때문입니다.
- 예를 들어,
질문하신 개념에 대한 추가 설명이 필요한 경우, 유사한 질문에 대한 답변을 제공하고 있는 게시물을 참고하시면 도움이 될 것입니다:
- “2024년 2회 17번 재귀함수”에서는 재귀 함수의 동작 과정과 원리에 대한 추가적인 설명을 다루고 있으니 참고해 보시면 좋습니다.
제가 제공한 설명이 도움이 되길 바라며, 추가적으로 궁금한 점이 있으시다면 언제든지 다시 질문해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
재귀함수 연산법
0
19
2
26년 1회차 기출 강의
0
57
2
기출문제
0
55
1
C언어에서
0
61
1
포인터 질문
0
57
2
실기 공부 시작 하려고 하는데요
0
98
2
필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)
0
94
2
26년 1회 실기 해설 강의
0
112
2
53번 4-1 자료 오류 있는 것 같습니다.
0
106
2
7번문제
0
88
2
C언어 변형문제 9번문제 Pdf 수정요청
0
77
2
메서드 오버드라드
0
70
2
실수
0
63
1
공부 우선순위 우선강의 알려주세요
0
132
1
생성자 호출순서 강의 10번 문제 30분대 질문입니다
0
70
2
25년 2회 기출 5:40 질문입니다.
0
53
2
모의고사1회 3번 파이썬문제
0
85
2
C언어 출제변형 6번 문제
0
55
2
c언어 출제변형 강의 질문
0
42
2
28:40
0
45
2
C : 언어 배열과 문자열 수업자료
0
40
2
파이썬 리스트, 딕셔너리 질문
0
57
2
모의고사 관련 질문 건
1
79
3
자료 내용 오류
0
73
2





