C#(19)
-
[CS] Quick Sort, ArrayList/LinkedList, Concurrency/Parallelism, Critical Section/Mutex 정리
Quick Sort(퀵 정렬) 결정론적 알고리즘(Deterministic Algorithm) : 매번 똑같은 방식으로 각 단계를 거쳐가는 알고리즘 무작위 알고리즘(Randomized Algorithm) : 난수 생성 Partitioning -> 분할 작업. 기준이 되는 값은 pivot이 된다. pivot 보다 작은 수는 왼쪽에, 큰 숫자는 오른쪽에 위치하면서 정렬이 된다. 항상 첫 번째 요소를 선택할지, 랜덤으로 요소를 선택할지 달라질 수 있다. Quick Sort에 의한 시간 복잡도 -Best Case: 가장 좋은 케이스는 중간 값을 골라서 밸런스 있게 정렬을 나눌 때이다. -Average Case -Worst Case: 매우 불균형한 파티션으로 나눠지거나 가장 작은 값 또는 가장 큰 값이 선택 될 때..
2024.03.26 -
C# 코딩 테스트 정리
배열의 길이 가져오기 int[] arr -> arr.Length; for문에서, for(int i = 0; i int 변환 매개변수가 string이고 반환 값이 int일 때, int answer = int.Parse(s); int answer = Conver.ToInt32(stringNumber); long answer = Convert.ToInt64(new string(a)); int -> string 변환 string numString = n.ToString(); 배열 선언하기 long[] answer = new long[n]; 여기서 [n]은 배열의 개수 foreach ..
2024.01.15 -
[C#] 인터페이스
인터페이스란 상속 관계가 없는 클래스에 기능을 제공하는 구조이다. 클래스에 오버라이드로 조립하는 형태로 사용된다. 클래스와 비슷하지만 멤버는 추상 메소드, 추상 속성, 추상 인덱서, 이벤트로 한정된다. 인터페이스도 상속은 가능하다. using System; interface A //인터페이스 생성 { public abstract void say(); //추상 메소드 public abstract int prop //추상 속성 { get; set; } } class X : A //인터페이스 장착 { public void say() //추상 메소드에 오버라이드 { System.Console.WriteLine("Hello"); } public void prop //추상 속성에 오버라이드 { get { retur..
2023.10.27 -
[C#] static에 대한 정리
필드나 메소드에 붙이는 수식자. 같은 클래스로부터 생성한 객체에서 static을 붙인 필드는 값이 같아진다. 어느 객체에도 같은 동작을 하는 메소드에는 static을 붙인다. 예시 using System; class Purse { public static int money = 0; public void printMoney(int IN, int OUT) { money = money + IN - OUT; if (money < 0) { Console.WriteLine((-1 * money) + "원 부족합니다."); } else { Console.WriteLine("잔금은 " + money + "원 입니다."); } } } class Shopping { public static void Main() { Pur..
2023.10.26 -
[C#] 속성(feat. get, set), 인덱서
필드의 값을 취득 또는 설정한다. 필드에 중괄호가 붙고 get/set을 쓴다. set 엑세서를 명시하지 않으면 읽기 전용, get 엑세서를 명시하지 않으면 쓰기 전용이 된다. 예시 using System; class Aroma { public double drop; public double volume { get { return drop; } set { drop = value; } } } class AromaSample { public static void Main() { Aroma aroma = new Aroma(); aroma.volume = 0.05; Console.WriteLine("한 방울은 " + aroma.volume + "ml 입니다."); } } 인덱서란 객체 안의 배열에 엑세스 하여 클..
2023.10.25 -
[C#] 생성자
클래스와 같은 이름의 특수한 메소드. 생성자는 반환 값이 없다. 필드 초기화 등에 이용한다. 인수가 없는 생성자 class A { public int a, b, c; public A() //생성자 { a = 0; b = 0; c = 0; } ... } class TestA { ... A a = new A(); //객체 생성 = 생성자 호출 ... } 인수가 있는 생성자 class B { public int s, t; public B(int a, int b) //생성자 { s = a; t = b; } } class TestB { ... B b = new B(3, 4); //생성자에 전달하는 인수 ... } 예시 using System; class Book { public int price; public i..
2023.10.25