본문 바로가기

전체 글

(228)
백준 1157 쉬운 문제라고 생각했는데 생각보다 어려웠다. 문자를 아스키코드를 이용하여 int로 형변환 후 num 의 인덱스로 넣는 것은 쉽게 했다. 그런데 해당 인덱스 값(int)를 다시 아스키코드로 만드는데 시간이 걸렸다. 결국 c 언어 char 의 기본조차 제대로 이해못했었던 것 같다.... char(n) 으로 n 값에 i + 65 로 설정해서 다시 대문자를 넣어주었다. 문제를 너무 어지럽게 푼 것만 같아서 다른 풀이를 더 찾아봐야겠다.. #include #include #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); string al; cin >> al; vector num(1000..
백준 10950 #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); int input = 0; cin >> input; for (int i = 0; i > a >> b; cout
백준 2750 수 정렬하기 1 #include #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); vector vectors; int input = 0; cin >> input; for (int i = 0; i > num; vectors.push_back(num); } for (int i = 0; i vectors[j]) { int temp = ve..
백준 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