C# : Array 배열
·
C#
소개 C#에서 배열(array)은 동일한 데이터 타입의 요소들을 담는 자료구조입니다. 배열은 메모리 상에 연속적으로 위치하며, 인덱스를 사용하여 요소에 접근할 수 있습니다. 이번 글에서는 C# 배열에 대한 자세한 설명과 내장 메서드 사용 방법에 대해 알아보겠습니다. 배열의 생성 C#에서 배열을 생성하는 방법은 다음과 같습니다. int[] numbers = new int[5]; 위 코드는 크기가 5인 int 타입의 배열을 생성합니다. 배열의 크기는 생성 시점에 지정되며, 이후에 크기를 변경할 수 없습니다. 배열의 요소에 접근하기 위해서는 다음과 같이 인덱스를 사용합니다. int firstNumber = numbers[0]; 위 코드는 배열의 첫 번째 요소를 변수 firstNumber에 저장합니다. 배열의 ..
C# : List<리스트>
·
C#
소개 C#에서 List는 배열과 함께 가장 많이 사용되는 자료구조 중 하나입니다. List는 동적으로 크기가 조정될 수 있으며, 배열과 마찬가지로 인덱스를 사용하여 요소에 접근할 수 있습니다. 이번 글에서는 C# List를 잘 활용하는 방법에 대해 자세히 살펴보겠습니다. List의 생성과 초기화 List를 생성하는 방법은 다음과 같습니다. List numbers = new List(); 위 코드는 빈 List를 생성합니다. 만약 List를 생성하면서 초기값을 설정하고 싶다면 다음과 같이 코드를 작성할 수 있습니다. List numbers = new List() { 1, 2, 3 }; 위 코드는 1, 2, 3을 요소로 가지는 List를 생성합니다. List의 요소 추가와 삭제 List에 요소를 추가하려면 ..
역추적 알고리즘 : Backtracking
·
C#/Algorithm
이 알고리즘은 모든 소프트웨어 솔루션의 논리적인 구조를 제공하는 핵심입니다. 역추적은 매력적인 알고리즘 기술 중 하나로 다양한 응용 분야가 있습니다. 오늘은 역추적의 개념과 용도를 살펴보며, 전형적인 구현 예제를 살펴보겠습니다. 백트래킹이란? 역추적은 문제에 대한 솔루션을 찾기 위해 가능한 모든 옵션을 탐색한 다음 막다른 골목에 도달하거나 현재 경로가 더 이상 유효한 솔루션을 생성할 수 없을 때 "역추적"하거나 후퇴하는 일반적인 알고리즘 기술입니다. 이 기술은 일반적으로 솔루션에 일련의 결정이 필요하고 모든 결정이 솔루션으로 이어지는 것은 아닐 수 있는 문제를 해결하는 데 사용됩니다. 알고리즘은 시도한 옵션을 추적하고 이 경로가 유효한 솔루션으로 이어질 수 없다고 판단하는 즉시 경로를 포기합니다. 역추적..
C# 힙(Heap)이란?
·
C#
소개 C#에서 힙은 우선순위 큐(priority queue)를 구현하는 데 사용되는 자료구조 중 하나입니다. 우선순위 큐는 요소들이 들어온 순서와 상관없이 우선순위에 따라 처리해야 하는 경우에 유용하게 사용됩니다. 힙은 배열(array)을 기반으로 하며, 다양한 그래프 알고리즘에서 최단 경로를 찾는 데 활용됩니다. 이번 글에서는 C# 힙(heap)에 대한 정의, 구현 방법, 연산, 활용 등에 대해 자세히 살펴보겠습니다. 힙이란? 힙은 이진 트리(binary tree)를 기반으로 한 자료구조입니다. 이진 트리에서는 각 노드가 최대 두 개의 자식 노드를 가질 수 있지만, 힙에서는 각 노드가 최대 두 개의 자식 노드를 가지며, 트리의 루트 노드는 언제나 최소값 또는 최대값을 가집니다. 최소 힙에서는 루트 노드..
C# Local Function
·
C#
소개 C# Local Function은 C# 7.0 이후로 추가된 기능 중 하나입니다. Local Function은 메서드 내에서 정의되는 함수로, 해당 메서드 내에서만 사용됩니다. 이번 글에서는 C# Local Function에 대해 자세히 알아보겠습니다. Local Function이란? Local Function은 메서드 내에서 정의되는 함수입니다. Local Function은 해당 메서드 내에서만 사용될 수 있으며, 외부에서는 접근할 수 없습니다. Local Function은 메서드 내에서 중복되는 코드를 줄이고, 메서드의 가독성을 높이는 데 매우 유용합니다. Local Function의 예 다음은 Local Function의 간단한 예입니다. public void PrintNames(List na..
C# 튜플 자료형
·
C#
소개 C#에서 튜플(Tuple)은 여러 값을 변수 하나에 저장할 수 있는 자료형입니다. 튜플은 서로 다른 데이터 형식의 값을 저장할 수 있으며, 소괄호로 묶인 값의 목록으로 정의됩니다. 튜플은 코드의 가독성과 유지 보수성을 향상시키며, 메서드에서 여러 값을 반환해야 하는 경우에 특히 유용합니다. 구조 튜플은 소괄호로 묶인 값의 목록으로 정의됩니다. 각 값은 데이터 형식과 값으로 구성됩니다. 다음은 튜플의 구조를 보여주는 예제입니다. // 튜플 정의 Tuple person = (25, "John"); // 튜플의 구조 ( int age = 25, string name = "John" ) 위의 예제에서, Tuple은 int와 string 형식의 값을 가진 튜플을 정의합니다. 튜플은 다음과 같은 구조를 갖습니..
실수형 변수 decimal, float, double
·
C#
소개 C#에서는 실수형 변수를 선언하여 부동 소수점 방식과 고정 소수점 방식으로 값을 저장할 수 있습니다. 이번 글에서는 C#에서 제공하는 실수형 변수 중 decimal, float(single), double에 대해 설명하고, 이들 변수가 사용하는 고정 소수점 방식과 부동 소수점 방식에 대해 자세히 살펴보겠습니다. decimal decimal은 C#에서 고정 소수점 방식을 사용하는 실수형 변수 중 하나입니다. decimal은 128비트 부호 있는 실수형 변수로, 28자리의 정밀도를 가집니다. 이는 매우 큰 수나 소수점 이하 자리수가 많은 수를 정확하게 표현할 수 있다는 것을 의미합니다. decimal 변수를 선언할 때는 다음과 같은 방법을 사용합니다. decimal myDecimal = 123.45m;..
Boids/Flocking Algorithm
·
C#/Algorithm
소개 Boids/Flocking Algorithm은 모의 떼짓기 알고리즘으로써, 새떼, 물고기 떼, 개떼 등의 떼 집단에서의 행동을 모델링하는 알고리즘입니다. 이 알고리즘은 자연에서 나타나는 다양한 떼짓기 행동을 흉내내어, 가상의 떼집단을 시뮬레이션 하는 데 사용됩니다. 이번 글에서는 C#에서 Boids/Flocking Algorithm을 구현하는 방법에 대해 자세히 살펴보겠습니다. Boids/Flocking Algorithm이란? Boids/Flocking Algorithm은 크기, 위치, 방향 등의 속성을 가진 개체를 시뮬레이션하는 알고리즘입니다. 이 알고리즘은 개체가 떼를 지어 움직이는 행동을 모방하여, 가상의 떼집단을 구현할 수 있습니다. 이 알고리즘은 크게 3가지의 규칙을 적용하여 구현됩니다. ..