전체 글 (241) 썸네일형 리스트형 백준 2751 첫 번째 실패... 피벗 랜덤하겠다고 random 헤더 넣어서 해봤지만 오히려 더 무거워졌다. #include #include #include using namespace std; void Qsort(vector& a, int i, int j, mt19937& gen) { if (i >= j) return; uniform_int_distribution dis(i, j); int pivot = dis(gen); int left = i; int right = j; while (left pivot) { right--; } if (left > input; for (int i = 0; i > num; vectors.push_back(num); } ran.. 백준 1764 시간 초과가 힘들게 했다. 입력되는 이름이 중복되지 않는다는 점을 생각하여 다시 풀었다. #include #include #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); vector names; vector correct; int inputD = 0; int inputB = 0; cin >> inputD >> inputB; for (int i = 0; i > a; names.push_back(a); } sort(names.begin(), names.end()); for (in.. 스마트 포인터 포인터 변수를 통해 동적할당 했을 때에는 항상 해제를 해주어야한다. 그래서 c++ 에서 new를 배울 때는 delete 키워드를 같이 공부한다. 그런데 여러 경우에서 할당한 메모리를 해제하지 못하는 경우가 생긴다. 실수로 delete 를 넣지 않았을 때도 있고, 예외처리 과정에서의 delete 선언을 부분적으로하여 메모리 누수가 생기는 경우 등이 있다. void remodel(std::string& str) { std::string * ps = new std::string(str); str = *ps; // delete ps; // 실수로 주석처리를 해버렸다! return; } void remodel2(std::string& str) { std::string* ps = new std::string(str.. 백준 10989 계수 정렬을 사용하였는데도 메모리 부족이 나왔다. 입력 시 vector 의 사이즈를 다시 설정해주면서 count 배열로 만들고 그대로 출력 시켜서 메모리 부족을 해결했다. 배열 하나만 사용하였다. #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int num = 0; int max = 0; cin >> num; vector nums; for (int i = 0; i > push; if (push < nums.size()) { nums[push-1]++; } else { nums.resize.. 백준 1874 #include #include #include #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); stack stacks; vector vectors; int pushNum = 1; int input = 0; cin >> input; for (int i = 0; i > num; while (1) { if (!stacks.empty()) { if (stacks.top() num) { cout 얕은 복사 깊은 복사 얕은 복사 값, 주소만 복사한다. 깊은 복사 복사 시 메모리를 새로 할당한 후 포인터가 가리키는 주소의 값을 넘겨준다. 모든 클래스는 디폴트 복사 생성자를 가지고 있다. #include #include #include #include using namespace std; class A { public: int* numP = nullptr; int num = 5; // 얕은 복사 /*A(const A& a) { this->numP = a.numP; this->num = a.num; }*/ A(int& c) { numP = &c; } // 깊은 복사 A(const A& a) { this->num = a.num; // 매개변수 a의 numP가 널값이 아닐 때 if (a.numP != nullptr) { thi.. 함수 포인터 변수와 같이 함수도 선언한 후 실행하면 CPU에서 메모리에 주소가 할당된다. 함수의 이름은 함수의 주소를 담고 있다. int Add(int a, int b) { return a + b; } int main(void) { cout 백준 11650 2차원 좌표 평면의 (x,y)의 좌표 정렬 문제. x,y 를 가지는 PINT2 구조체를 만들어 동적할당으로 배열 크기를 정해주고 sort 알고리즘에 Compare 함수를 만들어서 풀었다. #include #include #include #include using namespace std; struct PINT2 { int x; int y; }; bool Compare(PINT2 a, PINT2 b); int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int pointNum = 0; cin >> pointNum; PINT2* points; points = new PINT2[pointNum]; for (int i = 0;.. 이전 1 ··· 23 24 25 26 27 28 29 ··· 31 다음