#include <bits/stdc++.h>
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--;
}
void printArr(int arr[], int& len) {
for (int i = 0; i < len; i++) cout << arr[i] << ' ';
cout << "\n\n";
}
void insert_test() {
cout << "***** insert_test *****\n";
int arr[10] = { 10, 20, 30 };
int len = 3;
insert(3, 40, arr, len); // 10 20 30 40
printArr(arr, len);
insert(1, 50, arr, len); // 10 50 20 30 40
printArr(arr, len);
insert(0, 15, arr, len); // 15 10 50 20 30 40
printArr(arr, len);
}
void erase_test() {
cout << "***** erase_test *****\n";
int arr[10] = { 10, 50, 40, 30, 70, 20 };
int len = 6;
erase(4, arr, len); // 10 50 40 30 20
printArr(arr, len);
erase(1, arr, len); // 10 40 30 20
printArr(arr, len);
erase(3, arr, len); // 10 40 30
printArr(arr, len);
}
int main(void) {
insert_test();
erase_test();
}
- 출처 : https://www.youtube.com/watch?v=mBeyFsHqzHg&list=PLtqbFd2VIQv4O6D6l9HcD732hdrnYb6CY&index=4
'Algorithm > 개념' 카테고리의 다른 글
배열 조회는 O(1)을 활용하라 => visit 배열사용 (0) | 2023.08.13 |
---|---|
순열 vs 중복순열 vs 조합 vs 중복조합 종결 (0) | 2023.06.28 |