목록ALGORITHM/BAEKJOON (76)
MY MEMO
#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #define MAX 99999999 using namespace std; int main() { int n, num; scanf("%d", &n); vectorDP(100001, MAX); for (int j = 1; j
#define _CRT_SECURE_NO_WARNINGS #include #include #include #define MAX 99999999 using namespace std; vector cache; int main() { int num; scanf("%d", &num); cache = vector(num + 1,0); for (int j = 2; j
#define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; int main() { int house; scanf("%d", &house); int R, G, B, inputR, inputG, inputB, tempR, tempG, tempB; scanf("%d %d %d", &R, &G, &B); for (int j = 0; j < house - 1; j++) { scanf("%d %d %d", &inputR, &inputG, &inputB); tempR = inputR + min(G, B); tempG = inputG + min(R, B); tempB = inputB + min(R, G); R = tempR, G = tempG, B =..
#define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; vector memorization; int calculate(int n, int k) { if (k == 1) return n; if (n == k) return 1; int &ret = memorization[n][k]; if (ret != -1) return ret; return ret = calculate(n - 1, k - 1) + calculate(n - 1, k); } int main() { int for_count; scanf("%d", &for_count); memorization = vector(31, vector(31, -1)); for (int i = 0; ..
#define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; int zero_count, one_count; int fibo(int n) { if (n == 1) { one_count++; return 1; } if (n == 0) { zero_count++; return 0; } return fibo(n - 1) + fibo(n - 2); } int main() { int for_count,n; scanf("%d", &for_count); for (int j = 0; j < for_count; j++) { scanf("%d", &n); zero_count = 0; one_count = 0; fibo(n); printf("%d %d\n",..
#include #include #include using namespace std; vector map = vector(12,0); int fibo(int n) { if (n == 1) return 1; if (n == 2) return 2; if (n == 3) return 4; return fibo(n - 1) + fibo(n - 2) + fibo(n - 3); } int main() { cout
자리수 0으로시작 1로시작 2로시작 3으로시작 4로시작 5로시작 6으로시작 7로시작 8로시작 9로시작 합 출력 1 1 1 1 1 1 1 1 1 1 1 10 10 2 10 9 8 7 6 5 4 3 2 1 55 55 3 55 45 36 28 21 15 10 6 3 1 220 220 4 220 165 120 84 56 35 20 10 4 1 715 715 5 715 495 330 210 126 70 35 15 5 1 2002 2002 6 2002 1287 792 462 252 126 56 21 6 1 5005 5005 7 5005 3003 1716 924 462 210 84 28 7 1 11440 1433 8 11440 6435 3432 1716 792 330 120 36 8 1 24310 4296 9 243..
#include #include #include #include #include #include #include using namespace std; #define PAIR pair #define MAXNUM 123456789 int main() { int row_size, col_size; cin >> row_size >> col_size; vectormovement; vector dist = vector(col_size, vector(row_size, MAXNUM)); vectormap = vector(col_size); priority_queue cache; movement.push_back(make_pair(1, 0)); movement.push_back(make_pair(0, 1)); movem..
0을 처리하는 것을 몰랐다..0이 예외라니! 그 이후에 수정을 했는데아 이게 왜 안도는지 모르겠다내가 생각한 모든 예외사항을 처리했는데 왜 안돌지..심지어 코드도 똑같은 것같은데 틀렸다고 뜬다..흠.. 오답#include #include #include #include #include using namespace std; string code; int code_count, flag; vector cache; int code_breaking(int index) { if (index == code_count) return 1; int & ret = cache[index]; if (ret != 0) return ret; if (code[index] - '0' == 0) { flag = 0; return 0; ..
이문제는 못풀었다..어려웠다..정답을 보고 사람들은 천재라고 생각했다.. 신박한 방법.. 일단 처음에는 DP의 완전 기본적인 구조를 이용했다.그 합을 만드는 데 얼마나 작은 수가 필요한지 minimum을 저장했다. 그리고 이후 그 minimum을 구한 적이 있으면 return하면서 풀었다. 아 그리고 1부터 0개씩 써가면서 모든 수를 다 돌아보는 형식이다.시간이 오래 걸릴 만 했다..ㅎㅎ 충분히 시간을 줄일 수 을 꺼라 생각했는데 코드로 어떻게 짜야하는지 몰랐다. 첫번째(오답)#include #include #include #include using namespace std; #define MAX 1e6 int sum_coin_count, sum_coin; vector coin; vector cache;..