[python] 분할 정복 알고리즘의 예시
분할 정복 알고리즘은 큰 문제를 작은 문제로 분할하여 해결하는 방법입니다. 이 알고리즘은 재귀적으로 작동하며, 작은 문제들의 해답을 결합하여 원래의 문제의 해답을 도출합니다. 이를테면, 배열에서 최댓값을 찾는 문제를 해결하는 것입니다.
다음은 분할 정복 알고리즘을 사용하여 배열에서 최댓값을 찾는 예시 코드입니다:
def find_max(arr, start, end):
if start == end:
return arr[start]
mid = (start + end) // 2
left_max = find_max(arr, start, mid)
right_max = find_max(arr, mid + 1, end)
return max(left_max, right_max)
arr = [5, 9, 3, 7, 2, 6]
max_value = find_max(arr, 0, len(arr) - 1)
print("최댓값:", max_value)
위 코드는 배열 arr
에서 최댓값을 찾는 함수 find_max
를 정의하고 있습니다. find_max
함수는 주어진 범위 start
와 end
에 해당하는 부분 배열에서 최댓값을 찾아 반환합니다. 이를 위해 분할하여 왼쪽 부분과 오른쪽 부분의 최댓값을 재귀적으로 구하고, 두 결과 중 더 큰 값을 반환합니다.
위 예시 코드를 실행하면 배열 [5, 9, 3, 7, 2, 6]
에서 최댓값인 9
가 출력됩니다. 이를테면, 분할 정복 알고리즘을 사용하여 배열에서 최댓값을 찾는 문제를 해결할 수 있습니다.
정확한 동작 방식과 분할 정복 알고리즘을 다루는 더 많은 예시 코드를 알고 싶다면 링크를 참고하세요.