문제
봉우리가 여러개인 산 모양을 출력한다. 산 모양은 그림과 같고 좌우 대칭이다.
입력
첫 번째 줄에 숫자를 입력 받는다. 숫자의 크기는 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)
'알고리즘' 카테고리의 다른 글
[알고리즘 문제] division (Python / 파이썬) (0) | 2022.05.11 |
---|---|
[알고리즘 문제] 순열 구하기 (Python / 파이썬) (0) | 2022.05.11 |
[알고리즘 문제] 대소문자 변환 (Python / 파이썬) (0) | 2022.05.10 |
[알고리즘 문제] fmttalpha (Python / 파이썬) (0) | 2022.05.10 |
[알고리즘 문제] streetree (Python / 파이썬) (0) | 2022.05.10 |
댓글