Brute-Force(5)
-
[Brute-force] Synchronizing Clocks
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 #include #include #include int clocks[4][4] = {0,}; int switchPushNum[10] = {0,}; std::vector switchToClock = { {0, 1, 2}, {3, 7..
2021.01.01 -
[Brute-force]BOARDCOVER 게임판 덮기
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 #include bool gameboard[20][20] = {false, }; // y1, x1, y2, x2 int block[4][4] = { {1,-1, 1, 0}, {1, 0, 1, 1}, {1, 0, 0, 1}, {0, 1, 1, 1} }; bool isOkay(int h, int w, int y, int x) { re..
2020.12.30 -
[Brute-force] PICNIC 피크닉
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 #include #include #include int picnic(std::vector& friendPairList, bool* isInclude, int studentNum, int index, int includeCount) { int ret = 0, first = 0, second = 0; if(includeCount == studentNum) return 1; if(index == friendPairList.size()) return 0; first =..
2020.12.29 -
[Brute-force] 완전 탐색 레시피
1. 완전 탐색은 존재하는 모든 답을 하나씩 검사하므로, 걸리는 시간은 가능한 답의 수에 정확히 비례. 최대 크기의 입력을 가정했을 때 답의 개수를 계산하고 이들을 모두 제한 시간 안에 생성할 수 있을지를 가늠. 만약 시간 안에 계산할 수 없다면 다른 설계 패러다임을 적용. 2. 가능한 모든 답의 후보를 만드는 과정을 여러개의 선택으로 나눔. 각 선택은 답의 후보를 만드는 과정의 한조각이됨. 문제 -> 부분문제 3. 그중 하나의 조각을 선택해 답의 일부를 만들고, 나머지 답을 재귀 호출을 통해 완성. 4. 조각이 하나밖에 남지 않은 경우, 혹은 하나도 남지 않은 경우에는 답을 생성했으므로, 이것을 기저 사례로 선택해 처리. -알고리즘 문제해결전략 154p
2020.12.29 -
[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