반복전략은 수 많은 데이터를 가지고 동일한 연산을 수행 할 때 쓸 수 있는 전략입니다.반복을 탈출 조건을 만족 할 때까지 반복하여 원하는 결과값을 얻는 전략입니다.예를 들어 바닷물고기 리스트와 민물고기 리스트가 각각 가나다순으로 정렬되어 있다고 해봅시다. 이 것을 모두
재귀(recursion)함수는 함수가 작동을 할 때 자기자신을 호출하는 함수이다. 이런 성질때문에 반복하고자 하는 작업을 간단한 코딩으로 제법 있어보이게 할 수 있게 해주는 함수이다.(for문 반복보다는 있어보이는 것 같다...??)
무식하게 풀기 전략은 완전 탐색(exhaustive search)이라고도 불립니다. 답이 될 수 있는 경우의 수를 모두 탐색하여 답을 알아내는 무식한 방법이죠. 예를 들어 최적 거래 문제를 한 번 봅시다. 일정 기간 동안 금 가격이 주어져 있다. 이 기간 중 한 날짜
프로그래밍으로 풀고자 하는 문제중에는 올바른 선택의 순서를 구하는 문제들이 있습니다. 이런 문제들은 모든 가능한 선택순서의 경우의 수를 탐색하는 무식하게 풀기 방법으로도 풀 수 있지만 조금 더 효율적으로 접근할 수도 있습니다. 바로 역추적이라는 방법입니다. 역추적은 선
분할정복은 복잡하고 어려운 문제를 덜 복잡하고 쉬운 여러 문제들로 쪼개어 푸는 방법입니다. 가령 대량의 데이터를 정렬하고 싶을 때 분할정렬을 사용할 수 있습니다. 대량의 데이터를 작은 데이터들로 쪼개고 쪼개 한 두개의 데이터들을 비교하여 그 것을 차례대로 조합해가는 방
동적 계획법은 프로그램 연산 중 반복되는 계산의 결과값을 memoize(저장)하여 해당 계산을 여러 번 반복하지 않고 수행하는 방법으로 프로그램 성능을 증가시키기 위한 방법입니다.이러한 memoize는 반복되는 재귀호출등에 적용할 수 있습니다. 가령 피보나치 수열을 재
발견법(heuristic method)은 최선.최적의 답을 구하기에는 시간적.물적 조건을 좋지 못 할때 사용하는 방법으로 정확한 답을 구하리란 보장은 없지만 그에 가까운 답을 훨씬 짧은 시간내에 찾을 수 있는 방법입니다.발견법중에는 탐욕법(greedy approach)
분기한정법은 최단 경로탐색, 이윤 최대화등 최적화 문제(optimization problem)에서 최적화 문제에서 구하려는 것이 선택의 모음일 때 선택의 분기중 나쁜 선택을 미리 한정하여 프로그램의 시간성능을 높이는 방법입니다.나쁜 선택은 어떻게 알 수 있을까요? 상한