분할 정복
-
알고스팟 문제 풀이 FENCE24년 11월 이전/레거시-알고리즘 2019. 10. 25. 11:55
책 "알고리즘 문제 해결 전략"에 나오는 algospot 문제 "FENCE"에 대한 풀이입니다. 목차 문제 해결 전략 - 무작정 풀기 코드 전문 - 무작정 풀기 문제 해결 전략 - 분할 정복 코드 전문 - 분할 정복 FENCE 문제 URL은 다음과 같습니다. FENCE 문제 문제 해결 전략 - 무작정 풀기 먼저, 이 문제를 풀기 위해서 "무작정 풀기" 전략을 선택해 봅시다. 제일 쉬운 방법은 모든 인덱스를 돌면서, 그 높이를 가진 울타리 영역의 최대치를 구하면 됩니다. 무슨 소리냐면, 첫 번째 입력을 예로 살펴봅시다. 이런 울타리에서 첫 번째 판자의 높이로 울타리를 잘라낸다고 하면, 오른쪽 판자의 높이가 자신보다 낮습니다.따라서 다음 영역의 울타리를 잘라낼 수 있습니다. 영역의 너비는 7(7 * 1)이 ..
-
알고스팟 문제 풀이 QUADTREE24년 11월 이전/레거시-알고리즘 2019. 10. 17. 12:32
책 "알고리즘 문제 해결 전략"에 나오는 algospot 문제 "QUADTREE"에 대한 풀이입니다. 목차 문제 해결 전략 코드 전문 QUADTREE 문제 URL은 다음과 같습니다. QUADTREE 문제 문제 해결 전략 제가 이 문제를 해결하기 위해서 체택한 방법은 "분할 정복"입니다. 보통 알고리즘 문제를 해결할 때는 "무식하게 풀기"를 적용한 이후, 문제를 최적화하기 위한 패러다임을 차차 적용하는 것이 좋습니다. 하지만, 위 문제에서는 "분할 정복"을 적용하라는 문구가 이미 적혀져 있습니다. "주어진 공간을 항상 4개로 분할해 재귀적으로 표현하기 때문에 쿼드 트리라는 이름이 붙었는데, (이하 생략)" 4개로 분할해서 재귀적으로 표현한다. 이것은 4군데로 각기 나누어 문제를 해결하라는 소리와 일치합니다..
-
정렬 알고리즘 5부 병합 정렬24년 11월 이전/레거시-자료구조 2019. 9. 14. 15:46
Contents 시작하며... 병합 정렬의 이해와 구현 병합 정렬의 성능 분석 마치며... 시작하며... 구르미의 "Computer Science 정복하기 - 자료구조"의 열 일곱 번째 장입니다. 이 장의 대략적인 내용은 다음과 같습니다. 병합 정렬의 이해와 구현 병합 정렬의 성능 분석 이 장의 소스코드는 다음을 참고해주세요. url: https://github.com/gurumee92/datastructure branch: ch17 code directory: src/ch17 자 시작합시다! 병합 정렬의 이해와 구현 우리는 지난 세 장(13 ~ 15장)에 걸쳐서 버블 정렬, 선택 정렬, 삽입 정렬을 배웠습니다. 이들의 시간 복잡도는 O(N^2)입니다. 이제부터는 조금 복잡하지만, 조금 더 성능이 좋은 ..