본문 바로가기
알고리즘

[알고리즘 문제] mountain (Python / 파이썬)

by yewonnie 2022. 5. 10.

문제

봉우리가 여러개인 산 모양을 출력한다. 산 모양은 그림과 같고 좌우 대칭이다.

입력

첫 번째 줄에 숫자를 입력 받는다. 숫자의 크기는 20보다 작은 자연수이다.

출력

출력 예의 형식으로 출력한다.

문제 풀이

문제의 예시를 보면 

입력이 3일 때

1213121

입력이 5일 때

1213121412131215121312141213121

다음과 같이 출력되는 것을 알 수 있습니다. 

그림을 그려보면 재귀 함수로 문제를 해결할 수 있다는 것을 쉽게 알 수 있습니다.

 

1이 될 때까지 원소가 작아지며 재귀함수 recur(n - 1)을 실행합니다.

1을 출력하고 다시 원래의 위치로 return 되는데, 이때 다시 recur(n - 1)을

실행해 다시 1이 될 때까지 재귀함수를 실행해줍니다. 

 

그러면 n이 3일 때 1 -> 2 -> 1 -> 3 -> 1 -> 2 -> 1 순서로 원소가 출력됩니다.  


My Code

def recur(n):
    if n == 1: 
        print(1, end = '')
        return 
    else:    
        recur(n - 1) 
        print(n, end = '')
        recur(n - 1)

n = int(input())
recur(n)

댓글