TIL
[TIL] 백준 4779 칸토어 집합
밀27
2024. 9. 8. 11:51
문제 : https://www.acmicpc.net/problem/4779
참고 강의 : 인프런 - 세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
* 오늘의 학습 키워드 : 재귀함수
- 함수 내에서 자기 자신을 호출하는 함수를 의미
- 핵심 개념
- Base Case(기본 케이스) 와 Recursive Case(재귀 케이스)
- Base Case : 재귀 함수를 종료하는 부분
- Recursive Case : 자기 자신을 호출하는 부분
- Base Case(기본 케이스) 와 Recursive Case(재귀 케이스)
풀이 1 : bottom-up
ans = ['' for _ in range(13)]
ans[0] = '-'
for i in range(1, 13):
ans[i] = ans[i-1] + (' ' * (3 ** (i-1))) + ans[i-1]
while True:
try:
N = int(input())
print(ans[N])
except:
break
풀이 2 : 재귀함수
def func(k):
#base case
if k == 0:
return '-'
#recursive case
return func(k-1) + (' ' * (3 ** (k-1))) + func(k-1)
while True:
try:
N = int(input())
print(func(N))
except:
break