반응형
일주일 만에 겨우 한 단원을 끝냈다.
말도 안 되는 공부 효율성이다.
일단 이 책을 읽는 순간 나의 두뇌에 대한 남 탓과 자괴감이 동시에 생기며 분노가 차오른다.
하지만 변태적 성향인지 이 책을 읽는 동안 재미가 없었던 순간이 없었고 끝까지 읽을 수 있을 거라는 확신이 든다.
(시간에 대한 효율성은...)
이 단원에서는 완전탐색을 다루며 전체적으로 재귀 함수의 사용법과 시력을 향상한다.
사고 향상에 엄청난 도움을 주었다.
첫 번째 문제 n개의 원소 중 m개를 고르는 모든 조합을 찾는 알고리즘이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#include<iostream> #include<vector> #include<ctime> using namespace std; void printPicked(vector<int>& picked) { for (int i = 0; i < picked.size(); i++) { cout << picked[i] << " "; } cout << endl; } void pick(int n, vector<int> &picked, int toPick) { if (toPick == 0) { printPicked(picked); return; } int smallest = picked.empty() ? 0 : picked.back() + 1; for (int next = smallest; next < n; ++next) { picked.push_back(next); pick(n, picked, toPick - 1); picked.pop_back(); } } int main(int agrc, char*argv[]) { vector<int> picked; pick(4, picked, 2); //0 1 2 3 중 2개씩 묶겠다. } Colored by Color Scripter |
cs |
처음에 백터로 다른 원소들을 먼저 초기화 한 후 정렬하는 문제라고 생각해서 삽질을 너무 심하게 해서 정말 시간이 아까웠다.
문제가 이해가 안 가면 더 읽도록 하자..
반응형
'Algorithm' 카테고리의 다른 글
[#2-4]분할정복-문제: 울타리 잘라내기(문제 ID: FENCE) (0) | 2021.09.05 |
---|---|
[#2-3]분할정복-문제: 쿼드 트리 뒤집기(문제 ID: QUADTREE) (0) | 2021.09.05 |
[#2-2]분할정복-예제: 카라츠바의 빠른 곱셈 알고리즘 (0) | 2021.09.05 |
[#2-1]분할 정복-예제: 수열의 빠른 합과 행렬의 빠른 제곱 (0) | 2021.09.05 |
이분탐색 구현 팁 및 반환값 줄이기(부제: 공부하며 정리하는 생각들) (0) | 2021.08.09 |