본문 바로가기

분류 전체보기252

[백준 10815번][C++] 숫자 카드 - map #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { int N; cin >> N; map map; for (int i = 0; i > x; map.insert({ x, true }); } int M; cin >> M; vector v; for (int i = 0; i > x; v.push_back(x); } for (int i = 0; i M; for (int i = 0.. 2023. 7. 17.
[백준 2750번][C++] 수 정렬하기 - 4. 힙 정렬 #include #include #include #include #include #include #include #include #include #include using namespace std; void MakeMaxHeap(vector& v) { // 최대힙을 생성하는 함수 // 완전이진트리의 노드번호는 1번부터 시작하기때문에 0번 인덱스를 1번으로 취급해야함 // 0번을 시작으로할때 // 자식노드번호가 홀수인 경우, 부모인덱스 = 자식 인덱스 / 2 // 자식노드번호가 짝수인 경우, 부모인덱스 = 자식 인덱스 / 2 - 1 for (int i = 1; i 가장 큰 수라면 밑 부터 차례.. 2023. 7. 17.
[백준 2750번][C++] 수 정렬하기 - 3. 퀵 정렬 #include #include #include #include #include #include #include #include #include #include using namespace std; int Partition(vector& v, int left, int right) { // left번 인덱스부터 right번 인덱스를 pivot번 인덱스의 원소를 기준으로 큰 값, 작은 값을 나눔 int pivot = left; // 기준 인덱스 값(고정) int swap = left; // 중간중간 swap에 사용될 인덱스 값 for (int i = left + 1; i v[i]) { swap++; // swap(i swap) int temp = v[i]; v[i] = v[swap]; v[swap] = te.. 2023. 7. 16.
[백준 2750번][C++] 수 정렬하기 - 2. 선택 정렬 #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { int N; cin >> N; vector v; // 원소 입력 while (N > 0) { int x; cin >> x; v.push_back(x); N--; } // 2. 선택정렬 for (int i = 0; i < v.size() - 1; i++) // 마지막 원소는 정렬할 필요없음(이미정렬되어있으므로) { // 최소값의 인덱스와 값을 저장할 공간 생성 int minVal = v[i]; int minIndex = i; for (int j = i + 1; j < v.size(); j.. 2023. 7. 16.
[백준 2750번][C++] 수 정렬하기 - 1. 버블 정렬 #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { int N; cin >> N; vector v; // 원소 입력 while (N > 0) { int x; cin >> x; v.push_back(x); N--; } // 1. 버블 정렬 for (int i = v.size() - 1; i > 0; i--) { for (int j = 0; j v[j + 1]) { int temp = v[j]; v[j] = v[j + 1]; v[j + 1] = temp; } } } // 원소 출력 for (int i.. 2023. 7. 15.
[백준 2839번][C++] 설탕 배달 #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { int N; // 설탕의 갯수 cin >> N; int count = 0; // 봉지의 갯수 for (int i = N / 5; i >= 0; i--) { int res = N - (i * 5); // 남은 설탕의 갯수 if (res % 3 == 0) { // 남은 설탕이 없는 경우 count = i + res / 3; cout N; assert(N >= 3 && N 2023. 7. 15.
[백준 1436번][C++] 영화감독 숌 #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { int result = 0; int N; cin >> N; int startNum = 665; while (N > 0) { startNum++; string curNum = to_string(startNum); for (int i = 0; i < curNum.size() - 2; i++) { string subCurNum; for (int j = 0; j < 3; j++) { // 3자리의 연속된 수를 하나씩 담음 subCurNum.push_back(curNum[i + j]); } if.. 2023. 7. 15.
[백준 1018번][C++] 체스판 다시 칠하기 #include #include #include #include #include #include #include #include #include #include using namespace std; int wordCount(vector board, int startIndex_x, int startIndex_y, bool changeStartWord) { char startWord = board[startIndex_x][startIndex_y]; if (changeStartWord) { if (startWord == 'B')startWord = 'W'; else startWord = 'B'; } int changeWordNum = 0; // 바뀐 단어의 갯수 for (int p = 0; p < 8; p++.. 2023. 7. 14.
[백준 19532번][C++] 수학은 비대면강의입니다 #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { int a, b, c, d, e, f; cin >> a >> b >> c >> d >> e >> f; int x, y; // ax + by = c -> x = (c-by)/a // dx + ey = f -> d((c-by)/a) + ey = f // -> dc/a - dby/a + ey = f // -> y(e-db/a) = f - dc/a // -> y =(f-dc/a)/(e-db/a) = (af-dc)/(ae-db) if (a == 0) { // a가 0인 경우 // b 또는 d가 .. 2023. 7. 14.
[백준 2231번][C++] 분해합 #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { int result = 0; int N; cin >> N; if (N 1000000) return 0; for (int i = 1; i 0) { sum += curNum % 10; // 1의 자리의 숫자를 저장 curNum /= 10; // 1의 자리 숫자를 없앰 } if (sum == N) { result = i; // 분해합이 입력.. 2023. 7. 13.
[백준 2798번][C++] 블랙잭 #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { int result = 0; int N, M; cin >> N >> M; if (N 100 || M 300000) return 0; vector v; for (int i = 0; i > x; if (x 100000) return 0; v.push_back(x); } int sum = 0; for (int i = 0; i < v.size() - 2; i++) { for (int j = i.. 2023. 7. 13.
[백준 24313번][C++] 알고리즘 수업 - 점근적 표기 1 #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { int result = 0; int a1, a0, c, n0;; cin >> a1 >> a0; if (a1 > 100 || a1 100 || a0 > c; if (c > 100 || c > n0; if (n0 > 100 || n0 = a1 -> 교점 이후의 점들에서 성립 // -> f(k) == g(k)일.. 2023. 7. 13.