본문 바로가기

코딩테스트/파이썬

백준 17478번 재귀함수가 뭔가요?

728x90

문제 설명

 

 

재귀함수의 인자를 두 개로 설정하여 a는 재귀함수의 총 호출횟수를 뜻하고 b는 현재 재귀함수가 몇번째 재귀함수인지를 뜻한다. a와 b의 값이 같으면 마지막 재귀함수라는 뜻이고 같지 않으면 두번째 인자에 b에 1을 더하여 b+1을 넣어서 다시 재귀함수를 호출했다.

 

 

전체 코드

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


def main():
    num = int(input())
    num2 = 1
    print('어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.')
    print('"재귀함수가 뭔가요?"')
    print('"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.')
    print('마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.')
    print('그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."')
    func(num,num2)
    print('라고 답변하였지.')
    

if __name__ == "__main__":
    main()
728x90
반응형