동적계획법
분할정복과 비슷하다. 문제를 작게 나눈 뒤 조각의 답을 계산하고, 이 답들로 부터 원래의 문제에 대한 답을 구한다.동적계획법은 이항계수를 통해 쉽게 알 수 있다. int bino(int n, int r) { if(r==0 || n==r) return 1; return bino(n-1, r-1) + bino(n-1, r); }하지만, 이는 중복으로 호출되는 함수가 많다. 캐시 배열을 만들어 각 입력에 대한 반환값을 저장해놨다가 함수가 호출될 때마다 이 배열에 접근해 값이 저장되었는지를 확인한 후 저장되어있다면 즉시 반환한다.메모이제이션 : 한번 계산한 값을 저장해 뒀다 재활용하는 최적화 기법 int cache[30][30] // -1로 초기화 int bino2(int n, int r) { if (r==0 ..