관리 메뉴

Mini

배열 insert, erase 구현 cpp 본문

Algorithm/개념

배열 insert, erase 구현 cpp

Mini_96 2023. 8. 13. 18:15
#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