본문 바로가기
반응형

전체 글500

백준 C# - 14425 +) 풀이 back부분을 구현하는 것만 생각하면 되는 문제이다. 01 ToArray() ToArray()를 사용하니까 메모리 초과가 났다. int[] array = queue.ToArray(); sb.AppendLine(array.Length > 0 ? array[array.Length-1].ToString() : "-1"); break; 02 push될때 값 저장 push될때 값을 저장하면 그 값이 큐의 가장 끝 값이 된다! int last = 0; while(n>0) { n--; string[] input = Console.ReadLine().Split(); switch(input[0]) { case "push": queue.Enqueue(int.Parse(input[1])); last = int.Parse(i.. 2024. 4. 3.
백준 C# - 2630 +) 풀이 분할 정복 문제이다. 예제를 보면서 어떻게 분할할지 생각해보자 8 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 알고리즘 생각 부분 색종이는 모두 같은 색상이어야한다. 그렇지 않는 경우 색종이를 1/2씩 분할하여 모두 같은 색인지 다시 체크하며 재귀적으로 확인한다. 위의 생각을 코드로 표현해보자 01 부분 색종이가 모두 같은 색상인지 체크 int firstColor = paper[row, col]; bool isSame= true; for (int i = row; i < row + size; i++) { for (int j .. 2024. 4. 1.
백준 C# - 1021 +) 풀이 이 문제는 Deque(덱) 자료구조를 사용해서 풀어야 되는 문제이다. C#은 제공되는 Deque(덱)자료구조가 없어서 직접 Queue를 이용해서 풀어야한다. Deque의 특징 큐와는 달리 항목의 추가와 삭제가 머리와 꼬리 양쪽 끝 모두에서 처리가 가능하다. (문제에서 자세히 안내되어있다) 첫 번째 원소를 뽑아낸다. 이 연산을 수행하면, 원래 큐의 원소가 a1, ..., ak이었던 것이 a2, ..., ak와 같이 된다. 왼쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 a2, ..., ak, a1이 된다. 오른쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 ak, a1, ..., ak-1이 된다. 과정 그림으로 예시 10 3 2 9 5 알고리즘 01 목표 원.. 2024. 3. 31.
백준 C# - 14425 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace baek2 { class Program { public static void Main() { int[] input = Array.ConvertAll(Console.ReadLine().Split(), int.Parse); int n = input[0]; int m = input[1]; List n_input = new List(); for(int i = 0; i0) { m--; m_input = Console.ReadLine(); if (n_input.Contains(m_input)) answer++; } Console.Write(ans.. 2024. 3. 31.
C# - 클래스(Class)와 구조체(Struct)의 차이 01 가장 큰 차이점은 상속 가능의 여부 구조체는 상속이 안된다. 그렇다면 구조체가 필요없는거 아닐까? C와 C# 간의 호환성 때문에 C#에서도 C코드를 돌릴 수 있도록 남겨둔 것이다. 02 타입 여부 구조체는 값 타입, 클래스는 참조 타입이다. 간단한 예시로 알아보자 재산이 많은 할아버지가 자손에게 재산을 상속하고 싶은데 알고보니 재산이 구조체로 선언되어있어서 재산을 상속할 수 없다. 아래와 같이 코드를 작성하면 오류가 난다. struct Father { public void fathermoney() { } } struct Son : Father { public void sonmoney() { } } class main { public static void Main() { Father father; f.. 2024. 3. 29.
C# 문법 - 값 타입(Value type)과 참조 타입(Reference type) 값 타입(Value type) 스택에 저장된다. 그러므로 힙에 객체로 할당되지 않아서 GC가 관리 하지 않고 포인터로 가리켜지도 않는다. 선언되는 즉시 메모리에 할당 따라서 생성과 동시에 값을 할당할 수도 있다. int a = 10; c#에서 값타입에는 int, 부동 소수점, double와 같은 원시 타입과 구조체 참조 타입(Reference type) 값을 별도의 메모리 공간(heap)에 저장하고 메모리의 주소를 변수명과 함께 stack에 저장한다. 참조 타입은 새로운 값을 할당하기 위해서는 new를 통해 선언을 해주어야한다. 참조 타입에는 객체, 배열, 문자열,클래스 등이 있다. 코드 예시 예를 들어서 우리집 클래스가 있다고 해보자 class myHome { void room() { } } 만약 객체.. 2024. 3. 29.
반응형