과제 README.MD https://github.com/devouring-algorithm-ds/algorithm-study-s2/tree/s2/week1/week1
### 개인
+ 배열의 내용을 공부하고 정리한다.
+ 배열의 정의와 성질
+ 1) 임의 위치에 있는 원소에 접근 = `O(1)`
+ 2) 임의 위치에 있는 원소를 변경 = `O(1)`
+ 3) 원소를 끝에 추가 = `O(1)`
+ 4) 마지막 원소 제거 = `O(1)`
+ 5) 임의 위치에 원소 추가 = `O(n)`
+ 6) 임의 위치에 원소 제거 = `O(n)`
+ 기능 구현
+ 1) 임의 위치에 원소 추가: `insertAt(...)`
+ 2) 임의 위치의 원소 제거: `removeAt(...)`
// 샘플 배열
const arr = [1, 2, 3, 4, 5]
const insertAt = function (targetArray, value, index) {
// 입력할 배열, 입력할 내용, 입력할 인덱스 위치
console.log('짱짱센,,, 인설트엣 친구를 동작합니다...')
let preArr = []; // 앞 배열
let postArr = []; // 뒷 배열
for (let i=0; i < targetArray.length; i++) { // 슬라이스 못쓰니까 열심히 잘라보자. O(n)
index > i ?
preArr[i] = targetArray[i]
: postArr[i] = targetArray[i] // 가독성 말아먹고
}
// preArr.length; // 앞 배열의 길이가 나올것이다. 끝에다 추가한다. O(1)
preArr[preArr.length] = value;
const loofFunc = function (weight = 0) {
for (let j=0; j < postArr.length + weight; j++) { // O(n)
if (postArr[j + index] !== undefined) {
preArr[j + index + 1] = postArr[j + index]
}
}
}
// index 0 용
if (index === 0) {
loofFunc();
return preArr;
} else if(index <= 0) {
console.error('index에 음수넣지말자..')
return []
} else {
// 리턴용 새 배열
loofFunc(1);
return preArr;
}
}
// 삭제할 배열, 삭제할 인덱스 아까랑 비슷하겠지....
const removeAt = function (targetArray, removeIndex) {
console.log('나약한 .. 리무브엣을 동작합니다..')
// 리턴내용 그것이 삭제된 새 배열
let preArr = []; // 앞 배열
let postArr = []; // 뒷 배열
for (let i=0; i < targetArray.length; i++) { // 슬라이스 못쓰니까 열심히 잘라보자. O(n)
// filter 안쓰고 하려니까 매우 어렵구나...
if (removeIndex > i) {
preArr[i] = targetArray[i]
}
else if (removeIndex < i) {
postArr[i] = targetArray[i]
}
}
for (let point = removeIndex; point < postArr.length; point++) {
preArr[point] = postArr[point + 1]
}
preArr.length = preArr.length - 1
return preArr;
}
const insertArr = insertAt(arr, 8, 4);
const removeArr = removeAt(arr, 0);
console.log('=======0ㅅ0======\n', insertArr, removeArr);
?
'몰라그거무서운거 > 알고모르고' 카테고리의 다른 글
센트리 m3에서 self-hosted docker 로 띄우기 (0) | 2024.06.28 |
---|---|
Rust 해볼까.. RustRover (1) | 2024.03.10 |
week2 과제 (1) | 2021.05.23 |
시, 공간 복잡도 (0) | 2021.05.10 |