알고리즘

자료구조(1): 배열과 리스트

Codult 2024. 1. 3. 17:37
728x90

파이썬은 배열과 리스트를 구분하지 않는다! (그래도 특성은 알아두자)

 

배열

메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조

- 인덱스를 통해 배열의 값을 참조한다.

- 해당 인덱스 주변에 있는 값을 이동시키는 과정을 통해 삽입 및 삭제가 가능하다.

- 배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 변경할 수 없다.

- 구조가 간단하여 코딩 테스트에서 많이 사용한다.

 

리스트

노드(값과 포인터를 쌍으로 갖는 기초 단위)를 포인터로 연결한 자료구조

- 포인터는 Head - Next - Next - ... - Next - Tail

- 인덱스가 없어, Head 포인터부터 순서대로 값에 접근해야 하므로, 값에 접근하는 속도가 느리다.

- 포인터로 연결되어 있어, 데이터의 삽입 및 삭제하는 연산 속도가 빠르다.

- 크기가 정해져 있지 않기 때문에, 크기가 변하기 쉬운 데이터를 다룰 때 적절하다.

- 포인터를 저장할 공간이 필요하여, 배열보다 구조가 복잡하다.

 

 

출처) Do it! 알고리즘 코딩 테스트 - 파이썬 편

728x90

'알고리즘' 카테고리의 다른 글

자료구조(3): 투 포인터, 슬라이딩 윈도우, 스택과 큐  (2) 2024.01.04
자료구조(2): 구간 합  (0) 2024.01.03
알고리즘의 기본, 시간 복잡도  (1) 2024.01.03
백준 2869 (Java)  (1) 2023.12.03
백준 1193 (Java)  (0) 2023.12.03