본문 바로가기
반응형

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

백준 C# - 15650 +)풀이 이 문제를 풀기 앞서 아래 문제를 먼저 풀고 오는 것을 추천한다. 백준 C# - 15649 +) 풀이 대표적인 백트래킹 문제이다. 백트래킹 모든 경우의 수를 탐색하며 더 이상 해가 나올 것 같지 않으면 이전으로 돌아가서 다른 경우를 탐색한다. 풀이 원래 알던 DFS 알고리즘에서는 visited[i] = tru code-piggy.tistory.com N과 M(1)과의 차이점은 뒤에 숫자들이 앞의 숫자들보다 커야한단느 것이다. 출력 예시를 보면 더 쉽게 이해할 수 있다. 1 2 1 3 1 4 2 3 2 4 3 4 N과 M() 주요 알고리즘 N과 M(1)과의 차이점은 매개변수 at이 추가된 것이다. 이는 재귀가 어디서부터 시작하는지 나타내는 변수이다. public static void Dfs(int at, .. 2024. 1. 19.
백준 C# - 2839 using System; using System.Text; using System.Threading; namespace baek2 { class Program { public static void Main() { int a = int.Parse(Console.ReadLine()); int answer = 0; int b = a / 5; while(true) { if(b < 0) { Console.WriteLine(-1); return; } if((a - ( b * 5 ) )% 3 == 0) { answer = (a - (5 * b) ) / 3; break; } b--; } Console.Write(answer+b); } } } 2024. 1. 19.
백준 C# - 15649 +) 풀이 대표적인 백트래킹 문제이다. 백트래킹 모든 경우의 수를 탐색하며 더 이상 해가 나올 것 같지 않으면 이전으로 돌아가서 다른 경우를 탐색한다. 풀이 원래 알던 DFS 알고리즘에서는 visited[i] = true만 있었는데 백트래킹에서는 visited[i]=false가 추가된다. 처음에는 이부분이 이해하기가 몹시 어려웠다. if(depth == M) { for (int i = 0; i < M; i++) { sb.Append(arr[i]).Append(' '); } sb.AppendLine(); return; } for(int i = 1; i 2023. 12. 25.
백준 C# - 7562 +) 풀이 문제에서 최소부분이 있으면 BFS를 이용해야 한다. 앞서 BFS문제들을 풀어봤을때 큰 틀은 비슷한 것을 알 수 있다. 이 문제에서 크게 다른 점이 있다면 나이트의 움직임이다. 직접 좌표를 찍어보자 그러면 이를 각각의 배열들로 표현하면 아래와 같이 나온다. static int[] dirX = { 2, 1, -1, -2, -2, -1, 1, 2 }; static int[] dirY = { 1, 2, 2, 1, -1 , -2 , -2, -1 }; BFS 알고리즘 static void BFS(int x , int y, int n) { Queue queue = new Queue(); queue.Enqueue(new Tuple(x,y)); while (queue.Count>0) { Tuple now = queue... 2023. 12. 20.
백준 C# - 7576 +) 풀이 문제에 최소가 들어가면 BFS와 관련된 확률이 높다. 들어가기 앞서 주의! 01 그래프 (0,0)부터 입력받기 DFS, BFS문제에서 음수가 되는 경우를 배제하기 위해서 그래프값을 (1,1)을 넣으면서 진행하였는데 여기서는 그렇게 하면 안된다. 원인이 이거인지 모르고 열심히 그리다가 시간을 많이 소모하였다.. 하ㅏㅎㅏ.. 앞으로 (0,0)에 넣고 조건문을 넣어 푸는게 좋을 것 같다는 생각이 들었다. 02 string에 어떤 값이 들어가는지 꼭 확인하기 string문을 입력받으면 띄어쓰기 까지 입력이 받아진다. string s = Console.ReadLine() 그래서 Replace를 사용해서 띄어쓰기를 삭제했다. string s = Console.ReadLine().Replace(" ",""); 그랬더.. 2023. 12. 19.
백준 C# - 4963 +) 풀이 우리가 앞서 풀었던 문제는 상하좌우만 움직이는 문제이다. 하지만 이번 문제는 대각선까지 움직이는 것이 추가되었다. 이부분만 다르지 나머지 부분은 똑같다. 나머지 부분에 대한 설명은 아래 문제 참조 백준 C# - 2667 +) 풀이 이 문제를 풀기 앞서 아래 문제를 풀고 오는 것을 추천한다. 2667이 아래 문제의 심화버전이다. 백준 C# - 1012 백준 C# - 1012 +) 풀이 먼저 문제 이해부터 해보자 문제에서 배추 흰지렁이가 한 배추의 code-piggy.tistory.com 대각선 + 상하좌우 움직이는 방법 대각선과 상하좌우로 움직이는 경우의수를 구하면 아래와 같이 9가지가 나온다. 01 상하좌우 코드 상하좌우를 확인하면서 구하는 코드는 아래와 같이 구했었다. static int[] dirX .. 2023. 12. 18.
반응형