Divide and Conquer(분할 정복)
Divide and Conquer(분할 정복) 분할 정복(Divide and Conquer)은 큰 문제를 작은 부분 문제로 분할하여 해결하는 알고리즘 설계 패러다임입니다. 이 패러다임은 문제를 더 작은 하위 문제로 분할한 다음, 각 하위 문제를 재귀적으로 해결하고, 그 결과를 합쳐서 원래 문제의 해를 얻는 방식으로 동작합니다. 이러한 분할 정복 접근 방식은 문제를 더 작고 관리하기 쉬운 부분으로 나누어서 효과적으로 해결하는 데 사용됩니다. 분할 정복 알고리즘은 보통 다음의 세 단계로 진행됩니다. 분할(Divide): 주어진 문제를 더 작은 하위 문제로 분할합니다. 이때, 하위 문제는 원래 문제와 구조적으로 유사해야 합니다. 정복(Conquer): 작은 하위 문제들을 재귀적으로 해결합니다. 이 단계에서 하..
- Algorithms and Data Structures/Algorithms
- · 2023. 8. 29.
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.