자료구조 시리즈 3편

2025. 4. 21. 09:10개발이야기

728x90
반응형

리스트(List) 완전 이해하기

이전 글에서는 배열(Array)에 대해 알아봤습니다.
이번에는 배열의 한계를 보완한 자료구조, 리스트(List) 에 대해 자세히 정리해봅니다.


1. 리스트란?

리스트는 데이터의 순서를 유지하면서, 크기를 동적으로 조절할 수 있는 자료구조입니다.

  • 배열처럼 인덱스를 통해 데이터에 접근 가능
  • 필요에 따라 자동으로 크기가 늘어나거나 줄어듬
  • 삽입, 삭제가 배열보다 유연함

2. 리스트의 특징

항목 설명

크기 동적 (필요에 따라 자동 확장)
접근 속도 인덱스로 빠르게 접근 (O(1))
삽입/삭제 속도 끝에 추가는 빠름 (O(1)), 중간 삽입/삭제는 느림 (O(n))
메모리 사용 약간 더 큼 (빈 공간 고려)

3. 리스트 사용 예시 (C# 기준)

 List 선언과 초기화

using System.Collections.Generic;

// 빈 리스트 생성
List<int> numbers = new List<int>();

// 값과 함께 초기화
List<string> fruits = new List<string> { "사과", "바나나", "포도" };

 요소 추가

numbers.Add(10);
numbers.Add(20);

 요소 접근 및 수정

Console.WriteLine(fruits[0]);  // "사과"
fruits[1] = "딸기";             // "바나나"를 "딸기"로 변경

 요소 삽입

fruits.Insert(1, "오렌지"); // 1번 인덱스에 "오렌지" 삽입

 요소 삭제

fruits.Remove("사과");       // "사과" 제거
fruits.RemoveAt(0);          // 0번 인덱스 요소 제거

 리스트 순회

foreach (var fruit in fruits)
{
    Console.WriteLine(fruit);
}

4. 실생활 예시로 이해하기

  • 리스트 = 늘었다 줄었다 하는 책꽂이
    • 책을 추가하면 자동으로 공간이 늘어나고
    • 책을 빼면 자동으로 공간이 줄어드는 유연한 책장

5. 리스트와 배열 비교

항목 배열(Array) 리스트(List)

크기 고정 가변
삽입/삭제 느림 상대적으로 빠름
메모리 작음 약간 큼
선언 방법 간단 약간 복잡 (using 필요)

이번 글에서는 리스트(List) 의 개념, 특징, C# 코드 사용법을 정리했습니다.

  • 리스트는 배열의 고정 크기 문제를 해결한 유연한 자료구조입니다.
  • 삽입/삭제가 용이해 실무에서도 가장 자주 사용됩니다.

 

728x90
반응형

'개발이야기' 카테고리의 다른 글

자료구조 시리즈 5편  (0) 2025.04.21
자료구조 시리즈 4편  (0) 2025.04.21
자료구조 시리즈 2편  (0) 2025.04.20
자료구조 시리즈 1편  (0) 2025.04.20
[C#] WinForms 파일 관리 앱 최종  (0) 2025.04.19