17478: 재귀함수가 뭔가요?

네르기·2022년 8월 29일
0

알고리즘

목록 보기
61/76

어떤 문제인가?

재귀를 활용해 주어진 횟수만큼만 문자열을 출력하는 문제.

시행착오 횟수

1번.

1차 시도: WA

큰따옴표를 넣어선 안될 곳에 넣은 실수를 해버렸다.

2차 시도: AC

아래는 코드 전문이다. f-string을 이용해 최대한 줄이려고 애썼다.

L=int(input())
print("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.")
def T(a):
    P='_'*4*a
    print(f'{P}"재귀함수가 뭔가요?"')
    if a>=L:
        print(f'{P}"재귀함수는 자기 자신을 호출하는 함수라네"\n'
        f'{P}라고 답변하였지.')
        return
    else:
        print(f'{P}"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.\n'
        f'{P}마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.\n'
        f'{P}그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."')
    T(a+1)
    print(f'{P}라고 답변하였지.')
T(0)

다른 사람들의 풀이

코드를 최대한 줄이려고 애쓴 흔적들이 보이는데, 대표적으로 print를 p로 치환하는 방법이 있다.
견본을 만들어서 쓰는 건 기본이고('_' * 4), 반복문을 욱여넣어서 하신 분들도 여럿 있었다.

사실 코드를 올리기 좀 그런게, 억지로 줄이려고 애쓰다 보니 좀 지저분한 게 눈에 보인다. 기본적인 원리로도 충분히 풀 수 있으니 생략한다.

profile
프로그래머와 애니메이터가 되고파

0개의 댓글