목록PROGRAMMING (318)
MY MEMO
Union은 메모리를 공유한다 #define _CRT_SECURE_NO_WARNINGS #include /* union을 쓰는 이유 -> size를 줄이기 때문! -> 통신을 다룰 때 가장 적은 사이즈를 사용하기 위해 -> union은 변수 중 가장 큰 size를 최대로 둠 */ union box { int val; int ball; char character; }; struct operator{ int type; union { int intNum; float floatNum; double doubleNum; }; }; union Coins { struct { int quarter; int dime; int nickel; int penny; }; int coins[4]; }; int main() { un..
#define _CRT_SECURE_NO_WARNINGS #include #include typedef struct node { int val; struct node_t* next; }node_t; node_t*head; void pop_head() { if (head == NULL) { printf("There is no head\n"); return; } node_t*temp = head; head = temp->next; free(temp); } void pop_last() { if (head == NULL) { printf("there is no head\n"); return; } node_t * current = head; node_t*current_next = current->next; whi..
#include int main() { char vowels[] = { 'a','e','i','o','u' }; char *pvowels = &vowels; for (int i = 0; i < 5; i++) { printf("%c \n", *(pvowels + i)); printf("%c \n", vowels[i]); } char*temp = (char*)malloc(5 * sizeof(char)); temp[0] = 'a'; temp[1] = 'e'; *(temp + 2) = 'i'; *(temp + 3) = 'o'; temp[4] = 'u'; free(temp); //하지만 변수명은 남음 char **temp1 = (char**)malloc(2 * sizeof(char*)); temp1[0] = (c..
+)Overloading, Overriding 차이?Overloading : 같은 이름의 method를 사용하는 것Overriding : 상속 후 부모의 method를 변경하는 것 Overriding의 예시출처 : http://itpangpang.xyz/105 #include #include //malloc 정의 typedef struct { char*brand; int model; }vehicle; struct temp { int x; int y; }; //함수의 overloading 허용되지 않음 //모든 함수의 이름이 달라야함 void show_point(int x, int y) { printf("1 : %d %d \n", x, y); } void show_point_temp(struct temp ..
#include int main() { int a = 1; int* pointer_a = &a; /* *란 그 변수의 주소값을 저장하는 것이다. &란 그 변수의 주소값을 가져오는 것이다. int *pointer = &a; 란 pointer에 a의 주소값을 저장한다는 것이다. 주소값의 변수를 가져오고 싶으면 *pointer를 printf해주면 된다. */ printf("a : %d \n", a); printf("pointer_a : %d / *pointer_a : %d / &pointer_a : %d \n", pointer_a, *pointer_a, &pointer_a); *pointer_a+=1; //2 //*pointer_a++; //안됨 printf("%d \n", *pointer_a); pointe..
#include int count =10; int function() { static int count = 0; return count; } int main() { printf("%d", function()); printf("%d", count); return 0; } C언어에서 static은 변수를 사용할 수 있는 범위를 그 파일 안으로 한정하는 것이다. 예를 들어 위와 같이 있다면 현재 int count는 전역변수이고 function()안에 있는 static int count는 function안에서 사용되는 정적 변수이다. 이 변수는 코드를 실행할 때 한번 초기화 되고 다시 이 변수를 초기화한 코드를 만나더라도 다시 초기화되지 않는다. 이는 함수에서도 적용된다. 만약 같은 이름의 함수를 사용해야한다면..
#define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; int main() { int n; vector map(501, vector(501)); scanf("%d", &n); for (int y = 0; y < n; y++) for (int x = 0; x 0; y--) for (int x = 0; x < y; x++) map[x][y - 1] += max(map[x][y], map[x + 1][y]); printf("%d", map[0][0]); return 0; }
#define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; int row, col; vectormap(1001, vector(1001)); vectorDP(1001, vector(1001, -1)); int square(int x,int y) { if (x == row - 1 || y == col - 1) return map[x][y]; if (map[x][y] == 0) return 0; int &ret = DP[x][y]; if (ret != -1) return ret; int num1 = 0, num2 = 0,num3 = 0; if (x + 1 < row) num1 = square(x + 1, y);..
#define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; int main() { int n; scanf("%d", &n); vectorDP(1001, -1); DP[1] = 1; DP[2] = 3; for (int j = 3; j
#define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; vectorDP(1001, vector(1001, -1)); int binomial_coefficient(int n, int k) { if (n == k) return 1; if (k == 1) return n; int&ret = DP[n][k]; if (ret != -1) return ret; return ret = (binomial_coefficient(n - 1, k - 1) + binomial_coefficient(n - 1, k)) % 10007; } int main() { int n, k; scanf("%d %d", &n, &k); printf("%d", binomia..