Brute Force
Brute Force(무차별 대입) brute force 방법은 문제를 해결하기 위해 가능한 모든 경우의 수를 탐색하는 방식입니다. 이 방식은 일반적으로 효율성이 떨어질 수 있지만, 모든 경우를 체크하기 때문에 정확한 답을 찾을 수 있습니다. 접근 방법: 가능한 모든 조합을 생성하거나 탐색합니다. 효율성: 일반적으로 느리며, 복잡도가 높을 수 있습니다. 대부분의 경우, 시간 복잡도는 O(n!) 또는 O(2^n)입니다. 적용 분야: 정확한 답이 필요하고, 입력 크기가 작은 경우에 사용할 수 있습니다. 예 두 숫자 중 두 개를 선택하여 합이 목푯값과 같은 경우를 찾는 예시 코드입니다. Python def findSumPairBruteForce(nums, target): n = len(nums) for i i..
- Algorithms and Data Structures/Algorithms
- · 2023. 8. 15.
재귀 함수(Recursive Function)
재귀 함수(Recursive Function)이란? 재귀 함수는 함수 내에서 자기 자신을 다시 호출하는 함수를 의미합니다. 이를 통해 반복적인 작업을 수행할 수 있습니다. 재귀 함수의 구조 def 재귀함수(): if 종료_조건: return 결과 ... 재귀함수() ... 예 팩토리얼은 재귀 함수의 대표적인 예시입니다. def factorial(n): if n == 1: return 1 return n * factorial(n - 1) factorial(5)를 호출한다고 가정하면, 아래와 같은 과정을 거치게 됩니다. 첫 번째 호출: factorial(5)가 호출됩니다. n = 5이므로, 5 * factorial(4)를 반환해야 합니다. factorial(4)를 호출하기 위해 다음 단계로 넘어갑니다. 두 ..
- Algorithms and Data Structures/Algorithms
- · 2023. 8. 13.
선택 정렬 알고리즘
선택 정렬 알고리즘(selection sort) 리스트 중에서 최소값을 찾습니다. 그 값을 리스트의 맨 앞에 위치한 값과 바꿉니다. 맨 처음 위치를 제외한 나머지 리스트를 대상으로 위의 과정을 반복합니다. Python 코드 def selection_sort(arr: list[int]) -> list[int]: length: int = len(arr) # 배열 전체를 반복하면서 for index_1 in range(length): min_index: int = index_1 # 현재 위치에서 가장 작은 원소를 찾습니다. for index_2 in range(index_1 + 1, length): if arr[min_index] > arr[index_2]: min_index = index_2 # 가장 작은 ..
- Algorithms and Data Structures/Algorithms
- · 2023. 7. 29.