전체 코드
using System.Collections;
using System.Collections.Generic;
namespace Rookiss_CSharp
{
class Program()
{
static void Main(string[] args)
{
int[] arr = new int[10];
// 배열의 단점 : 값의 사이즈가 고정됨
// arr[20] = 10;
// ex) 미리 큰 사이즈로 고정 - 배열을 미리 크게 잡아서 1000개로 만들면 메모리 낭비
// int[] arr = new int[1000];
// 크기를 유동적으로 늘릴수 있는 List 사용
// List <- 동적 배열
// 사이즈가 모자르면 크게 잡고 기존 내역을 바꿔치기해서 연결함
// 중간 삽입, 중간 삭제가 효율적이지 않음(시간복잡도 관련)
// 중간에 삽입하면 나머지 뒤에 있는 애들도 한칸씩 이동됨
// 중간에 삭제하면 뒤에 있는 애들도 한칸씩 앞으로 떙기고 끝은 지워짐
// *연결 리스트(LinkedList) * *는 중간 삽입/삭제가 O(1)으로 효율적이지만,
// **배열 기반 리스트(ArrayList 또는 벡터)**는 삽입/삭제 시 해당 요소를 기준으로 앞뒤의 모든 데이터를 이동시켜야 하므로 O(n)의 시간 복잡도를 가집니다
// System.Collections.Generic.List<T> 클래스 : 배열 기반 리스트(ArrayList)
// 인덱스 접근(읽기): 인덱스를 통한 빠른 접근 가능(평균적으로 O(1) 시간 복잡도).
// 데이터 삽입/ 삭제: 배열의 중간에 데이터를 삽입하거나 삭제할 경우, 그 뒤의 모든 요소들을 이동시켜야 하므로 상대적으로 느립니다(O(n) 시간 복잡도).
// 메모리: 요소들이 메모리상에 연속적으로 저장됩니다.
List<int> list = new List<int>();
// 없는데 접근시 ArgumentOutOfRangeException 에러
// list[0] = 1;
for (int i = 0; i < 5; i++)
{
list.Add(i);
}
// 삽입, 삭제 : 배열에서는 지원하지 않지만 list에서 지원함
// .Add(item) : 맨뒤에 item을 집어넣음
// .Insert(index, item) : 특정 index에 item을 집어넣음
// 삽입
// 3번째에 값을 추가하고 싶다면
// [0, 1, 2, 3, 4] -> [0, 1, 999, 2, 3, 4]
// list.Insert(2, 999);
// 삭제
// .Remove(item) : item과 동일한 첫번째 값 삭제
// return bool(삭제여부)
// ex) .Remove(3)
// [3, 1, 2, 3, 3] -> [1, 2, 3, 3]
bool success = list.Remove(3);
// [0, 1, 2, 3, 4] -> [0, 1, 2, 4]
// .RemoveAt(index) : 특정 index에 위치한 값 삭제
list.RemoveAt(0);
// [0, 1, 2, 4] -> [1, 2, 4]
// 자주 사용하는 함수
// .Clear() : 전체 삭제
list.Clear();
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
foreach (int num in list)
{
Console.WriteLine(num);
}
}
}
}
출처
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문| Rookiss - 인프런 강
현재 평점 4.9점 수강생 6,987명인 강의를 만나보세요. 기초 프로그래밍 지식이 없는 사람들을 위한 C# 프로그래밍 기초 강의입니다. 문법 암기 위주의 수업이 아니라, 최대한 필요한 부분만을 요
www.inflearn.com
52강 리스트
'C# > 기본 문법' 카테고리의 다른 글
| C# Dictionary (0) | 2025.11.20 |
|---|---|
| C# 다차원 배열, GetLength() (0) | 2025.11.20 |
| C# 배열 연습문제 (0) | 2025.11.18 |
| C# 배열 (0) | 2025.11.13 |
| C# TextRPG2 (0) | 2025.11.13 |