강의

멘토링

로드맵

Inflearn brand logo image

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

이호진님의 프로필 이미지
이호진

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

(기출) 2024년 2회 기출문제 - 이론 포함

24년 2회 기출 (영상 34:48)

해결된 질문

작성

·

64

0

동영상에 따르면

idx: 0, c:a, seen[a]: false

idx: 1, c:a, seen[b]: false

idx: 2, c:a, seen[a]: true

idx: 3, c:a, seen[c]: false

idx: 4, c:a, seen[a]: true

idx: 5, c:a, seen[b]: true

idx: 6, c:a, seen[c]: true

idx: 7, c:a, seen[d]: false

로 나와있는데

저가 풀어보면 아래와 같이 나오는데 혹시 잘못된 계산인가요?
답은 맞긴한데 조금 찜찜하네요

idx: 7, c:a, seen[d]: false -> true result =d

idx: 6, c:a, seen[c]: false -> true result =dc

idx: 5, c:a, seen[b]: false -> true result =dcb

idx:4, c:a, seen[a]: false -> true result=dcba

idx: 3, c:a, seen[c]: true

idx: 2, c:a, seen[a]: true

idx: 1, c:a, seen[b]: true

idx: 0, c:a, seen[a]: true

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

호출을 1, 2, 3, 4, .... 순으로 했다면 리턴은 ..., 4, 3, 2, 1 순으로 되겠죠.

그래서 질문자분 풀이는 틀린 내용입니다.

 

a가 먼저 리턴됩니다. 그리고 리턴 받은 값 "앞"에 b를 붙여서 ba가 리턴되는 것이고

(result = c + result로 되어있습니다. 이는 이전 리턴값의 앞에 if가 참인 경우 그 때 가지고 있는 문자열을 붙인다는 뜻입니다.)

 

쭉 위로 올라가서 dcba가 되는 것입니다.

0

안녕하세요, 인프런 AI 인턴입니다. 이호진님!

주어진 문제는 재귀 함수를 사용하여 문자열을 뒤집고 조건에 따라 결과를 조합하는 내용으로 보입니다. 재귀 함수의 흐름과 로직을 따라가므로, 재귀의 작동 방식을 이해하는 것이 중요합니다. 여기서는 인덱스를 뒤에서부터 시작하여 아직 등장하지 않은 문자를 결과 문자열에 추가하는 로직이 사용된 것 같습니다.

재귀 함수를 통한 문자열 조합 이해하기

  1. 초기상태:

    • idx = 0부터 시작하여 comp 함수를 호출함에 따라 각 문자를 검사하게 됩니다.
    • seen 배열은 ‘해당 문자가 이미 사용되었는가?‘를 체크하는데 사용됩니다.
  2. 문자 추가 과정:

    • 함수는 인덱스가 감소할 때마다 seen 상태를 체크하여 조건에 해당하는 문자를 결과(builder) 문자열에 추가합니다.
    • seen 상태 기반으로 각 문자의 추가 여부가 결정되므로 제출해주신 함수 흐름은 적절해 보입니다.
    • 인덱스 7부터 시작하여 각 단계에서 아직 사용되지 않은 문자를 탐지하고 result에 누적합니다.
  3. 결과 도출:

    • 재귀 호출이 전달되는 방향과 seen 상태 업데이트가 적절히 구현되었는지 확인하기 바랍니다.
    • 최종 결과가 dcba로 나오며, 이는 이전에 등장하지 않은 문자들이 뒤집힌 순서로 추가된 결과일 것입니다.

참고로 유사한 질문을 살펴볼 수 있는 답변 링크를 제공드리니 도움이 되시길 바랍니다:

  • 2024년 2회 17번 재귀함수 게시물에서는 재귀 함수의 동작 방식 및 구현에 대한 심화된 설명을 찾을 수 있습니다. 이를 통해 재귀 구조의 흐름을 보다 명확하게 이해하실 수 있을 것입니다.

  • 관련 영상 설명을 통해 각 단계가 어떻게 작동하는지를 시각적으로 확인하실 수도 있습니다.

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

이호진님의 프로필 이미지
이호진

작성한 질문수

질문하기