본문 바로가기
반응형

코딩테스트 준비/백준 C#161

백준 C# - 14891 +) 풀이 문제를 읽어보다가 원형 테이블이 생각이 나서 Deque를 사용해서 풀어야겠다는 생각이 들었다! 01 회전 함수 C#은 Library에 deque를 가져와서 사용할 수가 없다. 그래서 List를 이용해서 구현하였다. 반시계 방향(== -1)인 경우 왼쪽으로 이동시키도록 하고 시계 방향(==1)인 경우 오른쪽으로 이동시켰다. public static void turn(ref List list, int dir) { if (dir == -1) { string first = list[0]; list.RemoveAt(0); list.Add(first); } else { string last = list[list.Count - 1]; list.RemoveAt(list.Count - 1); list.Insert(0, .. 2024. 4. 15.
백준 C# - 1992 +) 풀이 아래 문제와 매우 유사한 문제이다. 백준 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 알고리즘 생각 부분 색종이는 code-piggy.tistory.com 분할 정복 문제이다. 8 11110000 11110000 00011100 00011100 11110000 11110000 11110011 11110011 알고리즘 생각 01 부분 색깔이 모두 같은 색상이어야 한다. 02 그렇지 않는 경우 재귀가 시작한다는 의미로 "("를 출력 .. 2024. 4. 6.
백준 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.
반응형