코드잇 파이썬
-
[파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 시간 복잡도프로그래밍 2021. 4. 1. 22:21
# 시간 복잡도(Time complexity) : 데이터가 많아질수록 알고리즘이 답을 찾는 데 걸리는 시간이 얼마나 급격히 증가하는지를 나타내는 개념. 시간 복잡도가 작은 알고리즘이 더 빠른 알고리즘이다. # 점근표기법(Big-O Notation) 시간 복잡도를 근사치로 표현하는 방법으로, 해당 알고리즘 내에서 답을 가장 늦게 찾을 경우(Worst cast)의 시간 복잡도를 빅 오 표현법이라 한다. 소요 시간이 20n + 40인 알고리즘의 점근 표기법(Big-O)은 O(n)이 될 것이다. 각 소요시간(예시)에 따른 점근 표기법은 다음과 같다. n이 크지 않은 숫자라면 알고리즘이 좋지 않아도 상관없으나, n이 크면 어떤 시간 복잡도를 갖고 있느냐에 따라 걸리는 시간이 기하급수적으로 증가하기 때문에 알고리즘..
-
[파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 재귀함수의 개념(카운트다운 함수, 팩토리얼 함수)프로그래밍 2021. 3. 17. 08:26
# 재귀 함수(recursive function) : 자기 자신을 호출하는 함수(반복문은 없음) 예시 1) 정수 4부터 1을 호출하는 countdown 함수 def countdown(n) : if n > 0: print(n) countdown(n - 1) countdown(4) 1) n = 4 > 0 이므로 4가 출력되고 countdown(3) 함수를 호출 2) n = 3 > 0 이므로 3이 출력되고 countdown(2) 함수를 호출 3) n = 2 > 0 이므로 2가 출력되고 countdown(1) 함수를 호출 4) n = 1 > 0 이므로 1이 출력되고 countdown(0) 함수를 호출 5) n = 0 이므로 아무것도 출력되지 않음(if문의 수행부분으로 들어가지 않고 countdown(0)이 종료..