C# 자료구조, 알고리즘, 길찾기/선형자료

선형 자료 구조인 스택과 큐는 데이터 구조에서 중요한 역할을 하는 두 가지 개념이다. 면접에서 자주 물어보는 내용이니 잘 숙지해 둘 필요가 있다. (*선형 자료 구조: 데이터가 순차적으로 배열되어, 각 요소가 정확히 하나의 앞 요소와 하나의 뒤 요소를 가지는 구조이다. 데이터의 순서가 중요하며, 요소 간의 관계가 일대일로 연결되어 있다.)스택(Stack)스택은 선형 자료 구조의 한 종류로, 후입선출 (LIFO, Last In First Out) 원칙에 따라 작동하는 데이터 구조이다. 즉, 마지막에 삽입된 요소가 가장 먼저 제거된다. 스택의 각 요소는 다음과 같은 방식으로 정렬된다.Push: 스택의 맨 위에 요소를 추가한다.Pop: 스택의 맨 위에 있는 요소를 제거하고 반환한다.Peek: 스택의 맨 위에 ..
C#에서 동적 배열(dynamic array)은 크기를 동적으로 조정할 수 있는 배열을 의미한다. 기본적인 배열과는 달리, 동적 배열은 크기가 고정되어 있지 않아 필요에 따라 요소를 추가하거나 제거할 수 있다. 즉, 동적으로 조절 가능하다. C#에서는 List가 대표적인 동적 배열의 예이다. List는 System.Collections.Generic 네임스페이스에 포함되어 있으며, 요소의 추가, 제거, 검색 등의 다양한 기능을 제공한다.List의 주요 메서드Add(T item): 리스트에 요소를 추가합니다.Remove(T item): 리스트에서 특정 요소를 제거합니다.RemoveAt(int index): 리스트의 특정 인덱스에 있는 요소를 제거합니다.Clear(): 리스트의 모든 요소를 제거합니다.Cou..
C#의 배열을 한 마디로 정의하자면, 동일한 데이터 타입의 요소들을 연속된 메모리 공간에 고정된 크기로 저장하는 데이터 구조이다. 배열의 크기는 고정되어 있으며, 한 번 설정되면 변경할 수 없다. 그렇기 때문에 정적 크기 배열이라고도 한다. 배열의 인덱스는 0 부터 시작된다.배열의 특징1. 고정 크기: 배열의 크기는 한 번 설정되면 변경할 수 없다.2. 타입 안정성: 배열은 동일한 타입의 요소만 저장할 수 있다.3. 효율성: 배열은 메모리의 연속된 공간을 차지하며, 인덱스를 통해 빠르게 접근할 수 있다.4. 다차원 배열: C#에서는 2차원 이상의 다차원 배열도 지원한다.주의사항 C# 배열은 간단한 데이터 구조를 관리할 때 매우 유용하지만, 크기를 동적으로 조정해야 하는 상황에서는 'List'와 같은 동적..