📌 목차
1. 배열(Array)이란?
배열(Array) 은 가장 기본적인 자료구조(Data Structure) 중 하나로, 동일한 타입의 데이터를 연속된 메모리 공간에 저장하는 구조입니다.
예를 들어, 숫자 5개를 저장해야 할 때 int형 변수를 5개 따로 만드는 대신, 배열을 사용하면 한 줄로 관리할 수 있습니다.
int[] numbers = {10, 20, 30, 40, 50};
이렇게 선언하면 numbers[0]부터 numbers[4]까지 총 5개의 데이터를 인덱스로 접근할 수 있게 됩니다.
2. 배열의 특징
배열은 다음과 같은 특성을 가지고 있어요.
✅ 1) 고정된 크기
배열은 처음 선언할 때 크기를 정해줘야 합니다. 중간에 크기를 변경할 수는 없습니다.
int[] arr = new int[5]; // 5개의 공간 확보
✅ 2) 인덱스를 통한 빠른 접근
배열은 메모리상 연속적인 공간에 저장되기 때문에, 특정 위치의 값을 O(1)의 시간 복잡도로 바로 가져올 수 있습니다.
✅ 3) 같은 타입만 저장
배열은 하나의 데이터 타입만 저장할 수 있습니다. 예를 들어 int[]에는 문자열을 넣을 수 없습니다.
3. 배열의 장점과 단점
구분 | 장점 | 단점 |
성능 | 인덱스로 빠른 접근 가능 (O(1)) | 중간 삽입/삭제는 느림 (O(n)) |
메모리 | 연속된 공간으로 캐시 성능이 좋음 | 크기 변경이 불가능 |
사용성 | 단순하고 사용하기 쉬움 | 데이터 양이 가변적일 경우 불편 |
배열은 간단하지만 동적 데이터 처리에는 불리하다는 점에서 연결 리스트(Linked List) 등 다른 구조와 비교됩니다.
4. 배열은 어디에 쓰일까?
배열은 모든 프로그래밍 언어에서 가장 기본적인 데이터 저장 방식으로, 아래와 같은 곳에 많이 쓰입니다.
- 리스트/List 구성
- 정렬/탐색 알고리즘 구현 시 기본 단위
- 버퍼, 캐시 처리에서 빠른 접근 용도
- 다차원 배열을 활용한 게임 맵, 이미지 처리 등
예: 게임에서 맵 좌표를 [x][y] 형태로 저장할 때, 이차원 배열을 사용합니다.
5. 배열을 잘 쓰는 팁
🟡 배열 사용 시 주의할 점
- 크기를 미리 예측해야 함 → 예측이 어려운 경우는 ArrayList 사용 고려
- 빈칸 채우기 초기값 처리 필요
- 배열 복사 시 얕은 복사 vs 깊은 복사 주의
🟢 배열을 효율적으로 쓰려면?
- for문과 함께 반복 작업을 잘 활용
- 배열 내 최대값, 최소값, 누적합 구하는 로직 익히기
- 정렬/탐색 알고리즘 연습할 때 가장 많이 쓰이니 반복 활용!
✅ 마무리 요약
- 배열은 동일한 타입의 데이터를 연속된 공간에 저장하는 가장 기본적인 자료구조입니다.
- 접근은 빠르지만 크기 변경이 어렵고 삽입/삭제가 느립니다.
- 정렬, 탐색, 리스트 구현 등에서 가장 많이 쓰이는 핵심 구조입니다.
- 실무, 코딩 테스트, CS 공부까지 배열은 모든 개발자의 필수 지식입니다.