일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 파이썬
- form
- es6
- CSS
- HTML
- DRF
- AWS
- Git
- django ORM
- java
- django widget
- 백준
- API
- 알고리즘 풀이
- 알고리즘
- javascript
- MAC
- react
- Baekjoon
- 장고
- django rest framework
- 파이썬 알고리즘
- web
- Django
- PYTHON
- js
- c++
- 알고리즘 연습
- Algorithm
- 알고리즘 문제
- Today
- Total
목록divide and conquer (2)
수학과의 좌충우돌 프로그래밍

규정 상의 이유로 출처와 문제는 밝힐 수 없지만 코딩테스트를 보다가 연속 구간의 최대 합을 구하는 문제를 접하게 되었습니다. 문제를 푸는 방법이 굉장히 다양하고 각 풀이 방법의 복잡도가 전부 다르기 때문에 이에 대해서 정리해보고자 합니다. 연속 구간의 합 우선 main 함수입니다. main 함수에서는 원소의 개수를 입력받고, 원소의 개수만큼 값들을 입력받아 배열에 저장합니다. #include #include #include using namespace std; int main() { int N; vector arr; cin >> N; for (int i=0;i> temp; arr.push_back(temp); } int result = brute_force(arr); cout

Divide and Conquer Divide and Conquer 는 분할정복 알고리즘이라고도 하며, 문제를 2개 또는 그 이상의 작은 부분 문제로 나눠서 문제를 해결하는 알고리즘을 말합니다. 경우에 따라서는 푼 다음에 다시 부분 문제들을 합쳐서 정답을 구할 때도 있으며 퀵 정렬, 병합정렬, 큰수곱셈, FFT 등 여러 분야에서 분할정복 알고리즘을 이용하여 문제를 해결하고 있습니다. Divide and Conquer VS danamic programming 분할정복 알고리즘과 다이나믹 프로그래밍은 문제를 해결하는 핵심적인 전략이 동일합니다. 바로 문제를 작은 부분 문제로 나눠서 해결한다는 점입니다. 하지만 둘은 결정적인 차이가 존재하는데 바로 memorization 입니다. 다이나믹 프로그래밍은 작은 부..