제가 재귀 짜는거에 대해서 자신이 없어서 다음과 같은 상황일때 제가 의도한 구현을 어떻게 하면 되는지 좀 물어볼게요..
문자 '굳' 이라는 문자를 시작으로, 다음과 같은 규칙에 따라 작성한다고 합시다.
1. '굳'의 개수 만큼 양쪽에 '짱' 이라는 문자를 붙입니다. ex. '굳굳' => '짱굳굳짱'
2. 또는 양쪽 중 하나에 '헐'이라는 문자를 붙입니다. ex '굳' => '헐굳' or '굳헐'
이런 규칙에 따라 작성할 때 나올 수 있는 모든 문자열 구하려고 합니다.
가령 문자열 개수가 7이라 하면 7문자까지의 모든 문자열을 재귀를 돌려서 리턴하려는 것이지요.
만약, 5개 문자열인데 규칙 1을 써서 8문자열이 된다면 이것도 포함합니다.
이렇게 했을 때 재귀로 어떻게 짜야하나요..?
코드적으로 구현이 긴가 민가해서 수도코드?라도 가능할까요?
설명이 안 좋은거 같은데 문자열 개수 고정하고 예시를 들어봐
다시 설명해보자면, 'a' 라는 다음과 같은 규칙을 이용해서 문자열을 만드는데 개수가 7개까지 일때까지 한다고 해볼게요.. 규칙 1: a의 개수만큼 양쪽에 b추가 예시들: a => bab // aa => bbaabb // aba => bbababb // abaa => bbbabaabbb 규칙2: 또는 양쪽 중 하나에 b 한개 추가 예시들: a => ba or ab // aba => baba or abab // aa => baa or aab 이런식으로 되는 것이죠.. 혹시 설명이 부족한 부분을 꼭집어서 말하시면 다시 설명드릴게요.
나는 글을 읽을줄 알고, 그걸 모르는게 아냐. 그래서 문자열 길이가 5개, 혹은 그 이하일 때 답을 니가 제시를 해봐. 니가 말한 법칙에는 a가 늘어나는 가능성이 없으니까 니가 든 예시는 의미가 없어.
앗!! 죄송해요 규칙2가 a를 추가하는 방법인거에요 a => aa // ba => baa // aba => aaba or abaa 인것이죠. 제가 설명을 못한거 같아서 재차 설명한것이고 답변자님의 기분을 나쁘게 하려는 의도는 아닙니다. 네;;;;;
https://ideone.com/WBfSUA
감사합니다..
와 의도하신건 모르겠지만 가독성도 좋아서 몇 번보니까 바로 이해됩니다. 거듭 감사합니다.