Algorithm/개념

    배열 조회는 O(1)을 활용하라 => visit 배열사용

    * 기존 : 2중for 문 : O(N^2) * visit배열이용 : O(N) ex) 77 이면 이전에 23이 나왔었는지만 확인하면됨. 반복문 돌면서 visit에 기록 #include using namespace std; int v[100]; int func1(int N) { return -1; } int func2(int arr[], int N) { for (int i = 0; i < N; ++i) { if (v[100-arr[i]]) { return 1; } else { v[arr[i]] = 1; } } return 0; } int func3(int N) { return -1; } int func4(int N) { return -1; } void test1() { cout

    배열 insert, erase 구현 cpp

    #include using namespace std; void insert(int idx, int num, int arr[], int& len) { //arr[idx]에 원소추가 // 10 20 30 // [0] 1 2 // len=3 //뒤로밀기 //뒤부터 덮어쓰기하면 temp필요없음 //[i]=[i-1] for (int i = len; i > idx; i--) { arr[i] = arr[i - 1]; } arr[idx] = num; len++; } void erase(int idx, int arr[], int& len) { //arr[idx]의 원소를 지워라 //1.[idx]=[idx+1] for (int i = idx; i < len; ++i) { arr[i] = arr[i + 1]; } len--..

    순열 vs 중복순열 vs 조합 vs 중복조합 종결

    * 순열 (for i=0부터) void perm() { if (result.size() == 4) {//4개뽑 for (auto i : result) { cout