Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 프로그래머스코테
- 다이나믹프로그래밍
- css기초
- HTML
- 백준
- JS프로그래머스
- 백준골드
- 백준js
- 백준구현
- 리액트댓글기능
- dp알고리즘
- 백준알고리즘
- 안드로이드 스튜디오
- 코테
- 리액트
- CSS
- 익스프레스
- 리액트커뮤니티
- 자바스크립트
- 프로그래머스
- 프로그래머스JS
- 백준구현문제
- 포이마웹
- HTML5
- 백준nodejs
- js코테
- 코딩테스트
- JS
- 몽고DB
- 알고리즘
Archives
- Today
- Total
개발새발 로그
[2023-09-22] TIL - 배열, 순차리스트(Array) 본문
변수를 선언하면 메모리상에 데이터가 저장된다.
변수를 통해 데이터를 꺼내쓰거나 덮어씌울 수 있다.
만약 연관된 데이터를 하나의 변수에 처리하기 위해서는 배열을 사용해야한다.
배열
-연관된 데이터를 연속적인 형태로 구성된 구조를 가진다.
-배열에 포함된 원소는 순서대로 번호(index)가 붙는다.
배열의 특징
- 고정된 크기를 가지며 동적으로 크기를 늘릴 수 없다.
-> 하지만 자바스크립트 처럼 대부분의 스크립트 언어는 동적으로 크기가 증감되도록 만들어져 있다.
- 원하는 원소의 index를 알고 있다면 O(1)로 원소를 찾을 수 있다.
- 원소를 삭제하면 해당 index에 빈자리가 생긴다.
만약 배열의 중간의 요소를 추가하거나 삭제하고 빈자리를 채우게된다면 O(n)이 소요된다.
따라서 추가와 삭제가 반복되는 로직이라면 배열 사용을 권장하지 않는다.
배열은 탐색이 더 많은 경우에 유리한 자료구조이다.
Javascript에서 배열 사용법
// 빈 Array를 생성
let arr1=[];
// 미리 초기화된 Array를 생성
let arr2 = {1,2,3,4,5};
// 많은 값을 같은 값으로 초기화할 경우 fill을 사용
let arr3 = Array(10).fill(0);
// 특정 로직을 사용하여 초기화할 경우 from을 사용
let arr4 = Array.fro,({length : 100}, (_, i) => i);
특이점
1. 자바스크립트의 Array는 동적이다,
const arr = [];
arr.push(1);
arr.push(2);
console.log(arr); // 1, 2
2. 자바스크립트의 Array는 HashMap에 가깝다. index가 number가 아니어도 된다.
-자바스크립트의 배열이 근본적으로 Object이기 때문이다.
arr["string"] = 10;
arr[false] = 0;
console.log(arr) // [ string ; 10, false : 0]
console.lgo(arr.length) // 0 -> index와 무관한 값을 index로 사용한 경우 길이에 영향을 미치지않는다.
- 사용하지않는 것을 추천한다.
728x90
반응형
LIST
'TIL' 카테고리의 다른 글
[2023-09-22] TIL - 스택 (0) | 2023.09.24 |
---|---|
[2023-09-22] TIL - 연결리스트(Linked List), JS (1) | 2023.09.22 |
[2023-09-22] TIL - 시간 복잡도 (0) | 2023.09.22 |
[2023-09-21] TIL - 쿠키와 세션, 웹 스토리지 (0) | 2023.09.21 |
[2023-09-21] TIL - 정규표현식 (0) | 2023.09.21 |