728x90
등차수열의 합을 구해보자.
등차수열 이란?
연속하는 두 항의 차이가 모두 일정한 수열을 뜻한다.
Q. 1 × 20 + 2 × 19 + 3 × 18 + ⋯ + 20 × 1 = ?
A.
def summation(n):
s = 0
for i in range(1, n+1):
s += i * (n+1 - i)
return s
print(summation(20))
Q. 재귀를 통해 수열의 합 구하기
A.
def sumOfArray(array, i):
end = len(array) - 1
if end == i :
return array[end]
else:
return array[i] + sumOfArray(array, i+1)
print(sumOfArray([1,2,3,4,5,6,7,8,9,10],0))
이외에도 재귀를 통해 팩토리얼, 피보나치 수열을 구현할 수 있다.
2021.02.15 - [IT/알고리즘] - [python/자료구조] 재귀함수
[python/자료구조] 재귀함수
재귀함수란? 메소드 혹은 함수의 내부에서 자기 자신을 다시 호출하는 함수이다. 재귀함수를 통해 코드를 보다 간결하게 작성할 수 있으며 변수 사용을 최소화할 수 있다. 모든 재귀함수는 반복
upgrade-j.tistory.com
Q. 두 자연수 n, k에 대한 이항계수 구하기
A.
def binomial(n, k):
if k == 0 or n == k :
return 1
else:
return binomial(n-1, k-1) + binomial(n-1, k)
print('이항계수 n, k : ', binomial(5,2))
Python 재귀 오류!
RecursionError: maximum recursion depth exceeded in comparison
파이썬은 기본적으로 1000개 이상의 재귀를 제한하고 있어 그 이상의 재귀가 호출되면 에러가 뜬다.
이를 해결하기 위해서는 아래와 같이 코드를 추가하여 재귀의 호출 제한 횟수를 변경하면 된다.
ex) sys.setrecursionlimit(100000000)
# 재귀 호출 제한 횟수 변경
import sys
sys.setrecursionlimit(10**10)
출처 : Youtube 주니온TV 아무거나연구소의 코린아, 코딩하자! with 파이썬
728x90
'IT > 알고리즘' 카테고리의 다른 글
[python/자료구조] 그리디 알고리즘 (0) | 2021.06.04 |
---|---|
[python/알고리즘] 이차원 배열로 마방진 만들기 (0) | 2021.05.16 |
[python/알고리즘] 계란 낙하 실험 문제 (0) | 2021.05.15 |
[python/알고리즘] 스무고개를 넘어보자 (0) | 2021.05.14 |
[python/알고리즘] 로마 숫자를 아라비아 숫자로 변경하기 (1) | 2021.05.13 |
댓글
최근에 올라온 글
TAG
- VGGNet
- Pandas
- 프로그래머스
- SQLD
- SQL
- 경사하강법
- 인공지능
- 부스트코스
- sklearn
- numpy
- Programmers
- db
- 파이썬
- 자료구조
- Python
- Min()
- 알고리즘
- Project
- Max()
- Ai
- 머신러닝
- slqd
- 기계학습
- cnn
- Scikit
- MongoDB
- 딥러닝
- 주니온
- algorithm
- OpenCV
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Total
- Today
- Yesterday
250x250