코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
홀수 짝수에 따른 출력값
정수 N이 주어지고, N이 홀수인 경우에는 1부터 N까지의 홀수를, N이 짝수인 경우에는 2부터 N까지의 짝수의 합을 출력하는 프로그램을 재귀 함수를 이용하여 작성해보세요.
입력 형식
첫 번째 줄에 정수 N이 주어집니다.
- 1 ≤ N ≤ 100
출력 형식
첫 번째 줄에는 출력하는 모든 수의 합을 출력합니다.
입출력 예제
예제1
입력:
5
출력:
9
내가 짠 코드
n = int(input())
def f(n):
if n==1:
return 1
if n==2:
return 2
return n+f(n-2)
print(f(n))
재귀함수 문제이다. 우선 n 을 입력받은 후 홀수이면 지금까지의 홀수의 합을, 짝수이면 지금 까지의 짝수의 합을 출력해야한다.
우선 베이스케이스를 정의하자.
이 문제에서는 홀수가 들어오면 n==1 일때가 베이스케이스가 되고 짝수가 들어오면 n==2 일 때가 베이스케이스가 되므로 각각 1, 2 를 리턴할 수 있도록 한다.
그 후 재귀적으로 처리가 가능한데, 짝수일 때 짝수만 더하려면 n-2 번째를 호출하여 자기 전전 녀석을 호출해야한다.
홀수일 때도 마찬가지다. 자기 자신 + 자기 전전 녀석 호출이 필요하다. 따라서 리턴값은 n+f(n-2) 가된다.
728x90
'코드트리 챌린지' 카테고리의 다른 글
[코드트리 챌린지] 7주차 실력진단 + 코딩테스트 정리 ( 재귀함수 ) (1) | 2023.10.26 |
---|---|
[코드트리] 재귀함수를 이용한 최댓값 / 재귀함수 (0) | 2023.10.26 |
[코드트리] Factorial /재귀함수 (0) | 2023.10.26 |
[코드트리] 재귀함수를 이용한 피보나치 수 /재귀함수 (0) | 2023.10.26 |
[코드트리] 각 자리 숫자의 제곱 / 재귀함수 (0) | 2023.10.22 |