C#의 2차원 배열이란?
·
C#
C#의 2차원 배열은 행과 열로 구성된 배열입니다. 행은 배열의 가로 방향을 나타내고, 열은 배열의 세로 방향을 나타냅니다. 2차원 배열의 선언 2차원 배열은 다음과 같이 선언합니다. // int 형식의 2차원 배열을 선언합니다. int[,] array = new int[3, 4]; 이 코드는 3개의 행과 4개의 열로 이루어진 int 형식의 2차원 배열을 선언합니다. 2차원 배열의 초기화 2차원 배열은 다음과 같이 초기화할 수 있습니다. // int 형식의 2차원 배열을 초기화합니다. int[,] array = new int[3, 4] { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; 더보기 이 코드는 위에서 선언한 2차원 배열을 다음과 같이 초기화합니다. [0, 0..
IEnumerable 사용 팁
·
C#
1. 요소의 유무 확인: Count() != 0 보다는 Any()를 사용하자 자주 IEnumerable에 요소가 있는지 확인할 때 Count() != 0을 사용하는 경우가 있습니다. 그러나 Count()는 각 요소의 수를 O(n)의 시간에 계산합니다. 즉, 요소가 n개 있을 경우 n번의 연산이 필요하게 됩니다. public static int Count(this IEnumerable enumerable) { var count = 0; using(var enumerator = enumerable.GetEnumerator()) { while (enumerator.MoveNext()) count++; } return count; } 이와 대조적으로, Any()는 O(1)의 시간에 요소의 유무만을 확인합니다. ..
Main 함수란??
·
C#
안녕하세요, 여러분! 오늘은 C# 프로그래밍 언어에서 가장 기본적인 부분 중 하나인 Main 함수에 대해 자세히 알아보겠습니다. 프로그래밍을 처음 시작하는 분들도 이해하기 쉽게 설명하려고 노력했으니, 함께 따라와 주세요! Main함수란? C#에서의 Main 함수는 프로그램의 시작점(entry point)입니다. 즉, 운영 체제가 프로그램을 실행할 때 가장 먼저 호출하는 함수입니다. 여러분이 작성한 코드 중 어디서부터 실행을 시작해야 할지를 알려주는 역할을 합니다. Main 함수의 구조 기본적인 Main 함수의 구조는 다음과 같습니다 using System; class Program { static void Main(string[] args) { // 프로그램 실행 시 수행될 코드 } } using Sys..
C# 8의 System.Index 및 System.Range
·
C#
C# 8은 여러 가지 새로운 기능을 가져왔는데, 그 중 하나는 컬렉션의 인덱싱과 슬라이싱을 위한 새로운 System.Index 및 System.Range 타입입니다. 이 글에서는 이러한 추가 기능에 대해 자세히 알아보고, 더 간결하고 표현력 있는 코드를 작성하는 방법을 소개하겠습니다. System.Index C# 8 이전에는 배열이나 리스트에서 끝에서부터 요소에 접근하려면 일부 계산을 수행해야 했습니다. System.Index를 사용하면 이 과정이 더 직관적으로 됩니다. code int[] numbers = { 0, 1, 2, 3, 4, 5 }; Index lastElement = ^1; // 마지막 요소를 나타냅니다. Console.WriteLine(numbers[lastElement]); // 출력:..
자료구조 : 선형구조와 비선형구조
·
C#
데이터를 저장하고 관리하는 방식에 따라 자료구조는 크게 선형구조와 비선형구조로 나눌 수 있습니다. 각각의 자료구조는 고유한 특성과 장단점을 가지며, 적절한 활용이 필요합니다. 이 글에서는 선형구조와 비선형구조의 대표적인 자료구조들의 특성과 장단점을 자세히 알아보겠습니다. 선형구조 선형구조는 데이터가 연속적으로 나열되는 구조를 말합니다. 배열 (Array) 특성: 연속적인 메모리 위치에 저장됩니다. 인덱스를 사용하여 원하는 위치의 데이터에 쉽게 접근할 수 있습니다. 장점: 빠른 데이터 접근이 가능합니다. 단점: 크기가 고정되어 있어 확장이 어렵습니다. 중간에 데이터를 삭제하거나 삽입할 때 비효율적입니다. int[] numbers = new int[5] {1, 2, 3, 4, 5}; Console.Write..
C# : File
·
C#
C#의 영역에서 파일 작업은 필수적입니다. System.IO.File 클래스는 .NET 프레임워크의 필수 구성 요소로서 파일 생성, 읽기, 업데이트 및 삭제에 도움이 되는 다양한 정적 메서드를 제공합니다. 이 블로그 게시물에서는 File 클래스의 핵심 메서드를 분석하고 그 유용성을 보여드리겠습니다. File 클래스 소개 File 클래스는 FileStream 또는 StreamReader/StreamWriter를 수동으로 만들 필요 없이 파일을 관리하는 정적 메서드를 제공합니다. 이 메서드는 다양한 시나리오에서 파일을 처리하는 데 간단하고 효율적으로 설계되었습니다. 자주 사용되는 메서드 File.Create(string path) : 지정한 경로에 파일을 만들거나 덮어씁니다. FileStream myFile..
C# : Path
·
C#
C#에서 파일 경로, 디렉터리 및 URI를 다룰 때 가장 유용한 클래스 중 하나는 System.IO 네임스페이스 내에 있는 Path 클래스입니다. 이 블로그 게시물에서는 Path 클래스의 필수 메서드를 분석하고 일상적인 코딩에서 어떻게 원활하게 사용할 수 있는지 보여드리겠습니다. Path 클래스 소개 Path 클래스는 파일 또는 디렉터리 경로 정보를 포함하는 문자열에 대한 작업을 수행할 수 있는 정적 메서드 및 속성을 제공합니다. 이러한 작업은 본질적으로 플랫폼에 안전합니다. 즉, 메소드는 개발자의 추가적인 노력 없이 다른 운영 체제의 경로 형식을 처리합니다. 메서드 목록 GetFileName(string path) : 지정한 경로 문자열에서 파일 이름 및 확장자를 검색합니다. string path = ..
허프만 알고리즘(Huffman Algorithm)
·
C#/Algorithm
디지털 시대는 JPEG 이미지, MP3 오디오 파일, ZIP 아카이브 등 데이터 압축을 통해 발전합니다. 데이터 압축의 기본 알고리즘 중 하나는 허프만 알고리즘(Huffman Algorithm)입니다. 이 블로그 게시물에서는 Huffman 알고리즘을 이해하고 C#을 사용하여 작동하는 방식을 보여줍니다. 허프만 알고리즘이란 무엇입니까? 허프만 알고리즘은 창시자인 David Huffman의 이름을 따서 명명된 무손실 데이터 압축 방법입니다. 자주 사용되는 기호는 짧은 코드로, 자주 사용되지 않는 기호는 긴 코드로 인코딩하는 방식으로 작동합니다. 영어에서 가장 자주 사용되는 문자인 "e"가 긴 일련의 비트로 인코딩되고 "z"와 같이 거의 사용되지 않는 문자에는 짧은 코드가 제공된다고 상상해 보십시오. 그것은 ..