본문 바로가기
컴퓨터과학

[배열과 리스트의 차이] 꼭 알아야 할 기본 자료구조 차이점

by 코드그래피 2025. 1. 7.
반응형

프로그래밍 언어 문제풀이를 하다보면 배열과 리스트에 대한 문제가 자주 등장합니다

공부하면서 배열과 리스트의 차이에 대한 정리가 필요할 것 같아 작성해보겠습니다

1. 배열(Array)이란?

 

배열 같은 데이터 타입의 값들을 연속된 메모리 공간에 저장하는 자료구조입니다.

배열은 고정된 크기를 가지며, 인덱스를 통해 값에 빠르게 접근할 수 있습니다.

 

특징

  • 메모리 상에서 값들이 연속적으로 저장됩니다.
  • 인덱스를 사용해 값에 접근 (0부터 시작).
  • 크기가 고정적 (크기를 미리 지정해야 함).
  • 데이터 타입이 동일해야 함.

배열의 예 (Python):

# 배열 생성
from array import array
arr = array('i', [1, 2, 3, 4, 5])  # 정수형 배열

# 인덱스를 사용한 접근
print(arr[0])  # 출력: 1

2. 리스트(List)란?

 

리스트 데이터 타입에 상관없이 다양한 값을 저장할 수 있는 자료구조입니다.

Python에서는 배열보다 더 유연하고, 크기가 동적으로 변경 가능합니다.

 

특징

  • 메모리 상에서 값들이 반드시 연속적으로 저장되지 않을 수 있음.
  • 데이터 타입에 제한이 없음.
  • 크기가 동적으로 변경 가능.
  • 다양한 메서드 제공 (append(), remove() 등).

리스트의 예 (Python):

# 리스트 생성
lst = [1, "apple", 3.14, True]

# 요소 추가
lst.append(42)
print(lst)  # 출력: [1, 'apple', 3.14, True, 42]

3. 배열과 리스트의 주요 차이점

특징 배열(Array) 리스트(List)
메모리 저장 방식 연속된 메모리 공간에 저장 반드시 연속적이지 않을 수 있음
데이터 타입 동일한 데이터 타입만 저장 가능 다양한 데이터 타입 저장 가능
크기 고정적(생성 시 크기를 지정해야 함) 동적으로 크기를 조정할 수 있음
속도 메모리 접근 속도가 더 빠름 삽입/삭제가 더 유연함
유연성 제한적(데이터 타입과 크기 고정)  매우 유연함
사용 예시 숫자 계산, 행렬 연산 다양한 데이터 처리, 유연한 데이터 관리

4. 언제 배열을 사용하고, 언제 리스트를 사용할까?

배열을 사용해야 할 때

  • 데이터의 크기와 타입이 고정되어 있을 때.
  • 예: 숫자 배열 (행렬 연산, 이미지 처리 등).
  • 성능(속도)이 중요한 경우.
  • 연속된 메모리 덕분에 접근 속도가 빠름.

리스트를 사용해야 할 때

  • 데이터의 크기가 동적으로 변할 가능성이 있을 때.
  • 예: 실시간으로 데이터를 추가/삭제하는 경우.
  • 다양한 데이터 타입을 처리해야 할 때.
  • 예: 숫자, 문자열, 객체 등을 섞어서 저장.

5. 배열과 리스트의 실생활 예시

배열의 실생활 예시

  • 이미지 처리: 이미지 데이터를 픽셀 값으로 저장.
  • 행렬 연산: 데이터 과학에서 행렬 데이터를 처리.

리스트의 실생활 예시

  • 장바구니 시스템: 사용자 쇼핑 목록 관리.
  • 연락처 관리: 이름, 전화번호 등 다양한 데이터를 저장.

 

 

반응형