동적계획법(2)
-
[동적 계획법] Quantization
1. 완전 탐색 알고리즘 이 문제는 입력으로 주어진 배열을 먼저 정렬해야한다. 정렬을 하고나면 이 문제는 간단히 풀 수 있다. 어떤 구간에서 평균값이 오차의 최소값이므로 우리는 부분문제를 평균값과 오차의 제곱 합을 따로 구할 수 있는 함수를 구현만하면 된다. end quant(begin) = min(quant(hi)+ quantization(begin, hi)) begin = 0 hi = 1 quantization(begin, hi)는 begin부터 hi까지 배열의 평균값 오차의 제곱 합을 반환하는 함수이다. 2. 메모이제이션 적용 Cache[begin][usednum] = usednumb만큼 양자화를 수행한 상태에서 begin으로 시작하는 배열의 양자화 오차 제곱의 합의 최소값을 가짐 usednumb만..
2021.01.09 -
[Brute-force, Dynamic] 보글 게임
brute-force 핵심함수 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 const int dx[8] = { -1, -1, -1, 1, 1, 1, 0, 0}; const int dy[8] = { -1, 0, 1, -1, 0, 1, -1, 1}; bool hasWord(int y, int x, const string& word) { if(!inRange(y,x)) return false; if(board[y][x] != word[0]) return false; if(word.size() == 1) return true; for(int direction = 0; direction 3으로 표현하여 size()가 가장 작은 알파벳으로 분할하면 더 빨리 풀 수 있을 것이다. - 3..
2020.12.28