알고리즘/알고리즘

알고리즘 강의 3일차 - 배열기초

Jayy 2023. 3. 6. 22:26

이번강의는 선형 자료구조인 배열에 대해 상세하게 설명하며 시작했다.

 

배열은 선형자료구조로써 연관된 데이터를 연속적인 형태로 구성된 구조이다.

이미 이 수업 전에도 코딩을 할 때에 정말 많이 사용했던 자료구조이다.

 

 

비스크립트 언어인 Java에서의 배열은 길이가 고정되어있어 동적으로 늘리거나 줄일 수 없지만, 스크립트 언어인 자바 스크립트는 동적으로 크기를 조절할 수있다.

 

본인의 경우 배열생성시 변수명을 선언하고 빈배열을 이용하는 방식을 많이 사용했지만, 팀프로젝트 당시 함수안에서 배열을 만들 때는 new Array를 이용하여 만들어줬다. 

new Array(인덱스의 길이).fill(배열의 원소에 채워질 데이터)로 코드를 작성하게되면 배열에 채워질 데이터로 인덱스의 길이만큼의 배열이 생성되게 된다.

배열의 요소를 추가할 때에는 push메소드를 이용하여 값을 추가하게 되는데, 인덱스의 마지막 요소 뒤에 추가 되게 된다.

따라서 [1, ,2, 3] 이었던 배열이 [1, 2, 3, 4, 5]가 되는 것이다. 

배열의 요소를 삭제 할때는 splice 메소드를 이용할 수 있는데, splice(시작되는 인덱스 번호, 삭제할 인덱스의 갯수, 추가될 원소)

로 작동한다. 시작되는 인덱스 번호 이후로 추가,삭제가 이루어지며 삭제할 인덱스의 갯수에 0을 넣게되면 삭제가 아닌 추가만 이루어지게된다. 또한 추가될 원소를 입력하지않고 삭제할 인덱스의 갯수만 입력하게 되면 삭제가 이루어지게된다.

배열에서는 한 가지 특이점도 존재하는데, 원소에 객체가 추가되면 배열의 길이에는 영향을 주지않는 것이다. 

이미지 출처: https://school.programmers.co.kr/learn/courses/13213/13213-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EA%B4%91%ED%83%88-%EB%B0%A9%EC%A7%80-a-to-z-javascript