동적할당 c ▶1차원 배열 동적할당 int *k;int input;scanf("%d" , &input); k = (int *)malloc(sizeof(int)*input);▶2차원 배열 동적할당 int **k;int input;scanf("%d" , &input); k = (int (*)[ ])malloc(sizeof(int)*10); // 행의 크기k[0] = (int *)malloc(sizeof(int)*input); // 열의 크기 c++ ▶일반 변수 int *k = new int; // 동적으로 int 객체 할당*k = 10;delete k; // 동적으로 int 객체 제거 ▶1차원 배열 동적할당 int size;scans("%d", &size); // size = 20int *arr = new ..
2017.1.17 #include using namespace std; #define MAX_QUEUE_SIZE 100; class CircularQueue{ protected: int front; int rear; int data[MAX_QUEUE_SIZE]; public: CircularQueue(){front=rear=0;} bool isFull(){ return (rear+1)%MAX_QUEUE_SIZE==front; } bool isEmpty(){ return rear==front; } void enqueue(int x){ if(isFull()) printf("포화상태입니다."); else{ rear=(rear+1)%MAX_QUEUE_SIZE; data[rear]=x; } ..
2017.01.11 복습.● 그리디 알고리즘 ( https://www.acmicpc.net/problem/11047 ) ● 다익스트라 알고리즘 ( https://www.acmicpc.net/problem/1916 ) 과제.● https://www.acmicpc.net/problem/1493#● https://www.acmicpc.net/problem/1753● https://www.acmicpc.net/problem/1238 #자료 첨부
2017.01.09 알고리즘 스터디 두번째 시간으로 DFS, BFS, BackTracking 파트에 대해 공부해 보았습니다. 복습영역구하기(DFS)-> https://www.acmicpc.net/problem/2583경로찾기(BFS)-> https://www.acmicpc.net/problem/11403N-Queen(BackTracking)-> https://www.acmicpc.net/problem/9663 이번주 과제로또(DFS)-> https://www.acmicpc.net/problem/6603안전영역(BFS)-> https://www.acmicpc.net/problem/2468좋은수열(BackTracking)-> https://www.acmicpc.net/problem/2661 참고로 로또 문제..
드디어 가장높은 탑을 쌓았다. 매우어려웠다. 배고프고 졸리고 머리아프다. 하하 과제 02 - 2655번 : 가장높은탑쌓기 #include using namespace std; //벽돌 구조체 선언 struct Brick { int index, area, height, weight; }; Brick br[101] = {}; int H[101] = {}; //높이 메모이제이션을 위한 배열 int A[101] = {}; //바로 위 벽돌 저장 배열 int Count[101] = {}; //각 인덱스 별로 최대로 쌓을 수 있는 벽돌의 개수 //무게를 기준으로 오름차순 정렬 void sort(Brick* arr, int n) { Brick temp; for (int i = 1; i < n -..
스터디 1차시에서 진행 했던 내용은 다이나믹 프로그래밍이다. 어려웠다. 그래서 다시 공부했다.주비 누나가 주신 링크 (https://youtu.be/0o2hF-To_6Q) 로 복습을 했다. 참 어려웠다.연습문제도 풀었다. 아래 두 문제는 복습 겸 풀었던 연습문제다. 연습 문제 01 - 2747번 : 피보나치 수 #include using namespace std; long long int memo[46]; //Top-Down //long long int fibonacci(int n) { //memo[1] = 1; //memo[2] = 1; //for (int i = 3; i > N; cout D[i / 3] + 1) { D[i] = D[i / 3] + 1; } } return D[n..
결론 명시적인 것이 좋은건가?에 따라 다름 ( ∴ 안해줘도 됨 )이말은 `형변환이 필요없다`는 뜻이 아니고 `할 필요가 없다`는 뜻입니다 우리는 malloc 함수의 리턴값이 void * 라고 배웠습니다. 명시적으로 형변환을 해줄 수 있다는 것도 알았구여 자동적으로 형변환이 된다는 걸 알고 있죠 자 아래 예시는 2차원 동적할당입니다. easy하죠 #include int main() { // 2차원배열 만들기 (n X n) int n = 5; int ** arr; int i; arr = (int **)malloc(sizeof(int *) * n); // n만큼 2차원 배열 만들어줌, n의 크기는 1차원 for(i=0; i < n; ++i) arr[i] = (int *)malloc(siz..
지난시간에 이어서(코드를 잘 못짜게되면서 쓰게된 글) 글을 쓰게 된 이유 요약1. 코드를 잘 못짰는데 못찾았음 ಠ╭╮ಠ2. VS에서 디버깅 해봤는데 돌아가긴 하는데요 좋은건지 나쁜건지??3. gcc로 하면 오류가 뜨는데?? 당연하겠죠 나의 문제일단 어찌되었든 저의 눈으로 먼저 찾을 수 있는 문제였습니다 (선 eye.. 디버깅) 그동안 눈이 삐꾸였던거에요gdb 디버깅을 하면 값을 할당하던 곳에 멈춤니다 (후 gdb 디버깅)- `음 여기 값의 범위가 잘못되었군`을 알 수 있었죠2차원 동적할당을 할 때 동적 크기를 잘 못해줌. 이로인해 나머지 동적할당을 제대로 범위대로 할 수 없어짐. (이에 대해서 할말이 있음 - 글을 또 쓰려는 속셈!)범위를 넘어서게 함으로써 범위에 맞지않은 값 할당 (1로 범위를 시작하기..