본문 바로가기

코딩 테스트/백준

[Python] 백준 17478 재귀함수가 뭔가요?

 

정답 코드

재귀

def chatbot(n, cnt):
    print("____" * cnt + '"재귀함수가 뭔가요?"')

    if cnt == n: # 탈출조건
        print("____" * cnt + '"재귀함수는 자기 자신을 호출하는 함수라네"')
    else:
        print("____" * cnt + '"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.')
        print("____" * cnt + "마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.")
        print("____" * cnt + '그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."')
        chatbot(n, cnt + 1)
    print("____" * cnt + "라고 답변하였지.")


n = int(input())
print("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.")
chatbot(n, 0) # 초기값 0

 

2회차 - 25.02.06

print ( ) 에서 두 문자열을 ,로 이어주게 되면 띄어쓰기로 구분하기 때문에  + 로 두 문자열을 더해서 출력해야 한다.

import sys
input = sys.stdin.readline

def chatbot(n, cnt) :
    print("____" * cnt + "\"재귀함수가 뭔가요?\"")

    if n == cnt :
        print("____" * cnt + "\"재귀함수는 자기 자신을 호출하는 함수라네\"")
    else :
        print("____"*cnt + "\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.")
        print("____"*cnt + "마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.")
        print("____"*cnt + "그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\"")
        chatbot(n, cnt+1)
    print("____" * cnt + "라고 답변하였지.")

n = int(input())
print("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.")
chatbot(n, 0) # 초기값 0