프로그래밍
-
[파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 시간 복잡도프로그래밍 2021. 4. 1. 22:21
# 시간 복잡도(Time complexity) : 데이터가 많아질수록 알고리즘이 답을 찾는 데 걸리는 시간이 얼마나 급격히 증가하는지를 나타내는 개념. 시간 복잡도가 작은 알고리즘이 더 빠른 알고리즘이다. # 점근표기법(Big-O Notation) 시간 복잡도를 근사치로 표현하는 방법으로, 해당 알고리즘 내에서 답을 가장 늦게 찾을 경우(Worst cast)의 시간 복잡도를 빅 오 표현법이라 한다. 소요 시간이 20n + 40인 알고리즘의 점근 표기법(Big-O)은 O(n)이 될 것이다. 각 소요시간(예시)에 따른 점근 표기법은 다음과 같다. n이 크지 않은 숫자라면 알고리즘이 좋지 않아도 상관없으나, n이 크면 어떤 시간 복잡도를 갖고 있느냐에 따라 걸리는 시간이 기하급수적으로 증가하기 때문에 알고리즘..
-
[파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 예제8(재귀함수 연습 - 이진 탐색 알고리즘)프로그래밍 2021. 3. 25. 08:46
# 재귀 함수(recursive function) : 자기 자신을 호출하는 함수 (improvemyself.tistory.com/82?category=849184) [파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 재귀함수의 개념(카운트다운 함수, 팩토리얼 함수) # 재귀 함수(recursive function) : 자기 자신을 호출하는 함수(반복문은 없음) 예시 1) 정수 4부터 1을 호출하는 countdown 함수 def countdown(n) : if n > 0: print(n) countdown(n - 1) countdown(4) 1) n.. improvemyself.tistory.com # 이전 글 중 반복문을 사용하여 이진 탐색 알고리즘을 만들어 보았는데, (improvemyself.tisto..
-
[파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 예제7(재귀함수 연습 - 리스트 뒤집기)프로그래밍 2021. 3. 24. 22:36
# 재귀 함수(recursive function) : 자기 자신을 호출하는 함수 (improvemyself.tistory.com/82?category=849184) [파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 재귀함수의 개념(카운트다운 함수, 팩토리얼 함수) # 재귀 함수(recursive function) : 자기 자신을 호출하는 함수(반복문은 없음) 예시 1) 정수 4부터 1을 호출하는 countdown 함수 def countdown(n) : if n > 0: print(n) countdown(n - 1) countdown(4) 1) n.. improvemyself.tistory.com 코드잇 예제풀이(재귀함수 문제) : 파라미터로 리스트 some_list를 받고, 뒤집힌 리스트를 리턴하는 재귀..
-
[파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 예제6(재귀함수 연습 - 정수n의 각 자릿수의 합)프로그래밍 2021. 3. 23. 22:57
# 재귀 함수(recursive function) : 자기 자신을 호출하는 함수 (improvemyself.tistory.com/82?category=849184) [파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 재귀함수의 개념(카운트다운 함수, 팩토리얼 함수) # 재귀 함수(recursive function) : 자기 자신을 호출하는 함수(반복문은 없음) 예시 1) 정수 4부터 1을 호출하는 countdown 함수 def countdown(n) : if n > 0: print(n) countdown(n - 1) countdown(4) 1) n.. improvemyself.tistory.com 코드잇 예제풀이(재귀함수 문제) : 파라미터로 1 이상의 자연수 n을 받고, n의 각 자릿수의 합을 리턴하는 ..
-
[파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 예제5(재귀함수 연습 - 삼각수)프로그래밍 2021. 3. 23. 08:19
# 재귀 함수(recursive function) : 자기 자신을 호출하는 함수 (improvemyself.tistory.com/82?category=849184) [파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 재귀함수의 개념(카운트다운 함수, 팩토리얼 함수) # 재귀 함수(recursive function) : 자기 자신을 호출하는 함수(반복문은 없음) 예시 1) 정수 4부터 1을 호출하는 countdown 함수 def countdown(n) : if n > 0: print(n) countdown(n - 1) countdown(4) 1) n.. improvemyself.tistory.com # 삼각수(triangle number) : n번째 삼각수는 자연수 1부터 n까지의 합 코드잇 예제풀이(재귀함..
-
[파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 예제4(재귀함수 연습 - 피보나치 수열)프로그래밍 2021. 3. 23. 07:41
# 재귀 함수(recursive function) : 자기 자신을 호출하는 함수(반복문은 없음) (improvemyself.tistory.com/82?category=849184) [파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 재귀함수의 개념(카운트다운 함수, 팩토리얼 함수) # 재귀 함수(recursive function) : 자기 자신을 호출하는 함수(반복문은 없음) 예시 1) 정수 4부터 1을 호출하는 countdown 함수 def countdown(n) : if n > 0: print(n) countdown(n - 1) countdown(4) 1) n.. improvemyself.tistory.com # 피보나치 수열 : 첫 번째 항과 두 번째 항이 1이고, 세 번째 항부터는 바로 앞의 두 항..
-
[파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 재귀함수의 개념(카운트다운 함수, 팩토리얼 함수)프로그래밍 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)이 종료..
-
[파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 예제3(이진 탐색 알고리즘)프로그래밍 2021. 3. 9. 07:52
# 이진 탐색 알고리즘(binary search algorithm) : 정렬된 리스트를 전제로, 탐색 범위를 절반으로 줄여 가며 탐색을 진행하는 알고리즘 코드잇 예제풀이(이진탐색 알고리즘 문제) : 파라미터로 탐색할 값 element와 리스트 some_list를 받는 함수 binary_search를 정의하여 그 위치(인덱스) 혹은 None를 리턴 * 이진 탐색 알고리즘의 진행 순서(예시) [1, 2, 3, 5, 8, 13, 21, 34, 55]에서 3을 찾는 경우의 알고리즘의 진행 방식은 다음과 같다. 시도 1 리스트의 첫 번째 인덱스(원소의 위치)와 마지막 인덱스의 값을 합하여 2로 나눈 후, 그 몫을 중간 인덱스로 지정함(인덱스는 소수점이 될 수 없으므로 나눈 몫을 중간 인덱스로 지정). 그 중간 인..