반응형
풀다보니 백트래킹 문제였다. 풀다보니 헷갈린게 있어서 버벅거렸다 하핳..
아래 링크에 있는 알고리즘의 큰 맥란이 매우 비슷하다! 알고리즘에 대한 자세한 설명은 아래 게시글에 있다.
코드 전문
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace baek2
{
class Program
{
static char[,] graph;
static bool[] visited = new bool[27];
static int[] dirX = { -1, 1, 0,0 };
static int[] dirY = { 0, 0, 1, -1 };
static int R,C;
static int maxCount = 0;
public static void DFS(int x, int y,int count)
{
if (maxCount < count) maxCount = count;
for(int i = 0; i< 4; i++)
{
int newX = x + dirX[i];
int newY = y + dirY[i];
if (newX < 0 || newX >= R || newY < 0 || newY >= C )
{
continue;
}
if (!visited[graph[newX, newY] - 'A'])
{
visited[graph[newX, newY] - 'A'] = true;
DFS(newX, newY, count + 1);
visited[graph[newX, newY] - 'A'] = false;
}
}
}
public static void Main()
{
int[] array = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
R = array[0];
C = array[1];
graph = new char[R + 5, C + 5];
for(int i = 0; i<R; i++)
{
string input = Console.ReadLine();
for (int j = 0; j < C; j++)
{
graph[i, j] = input[j];
}
}
visited[graph[0,0] - 'A'] = true;
DFS(0, 0, 1);
Console.Write(maxCount);
}
}
}
반응형
'코딩테스트 준비 > 백준 C#' 카테고리의 다른 글
백준 C# - 11286 +) 눈물의 풀이 (2) | 2024.03.17 |
---|---|
백준 C# - 1235 +) 풀이 (0) | 2024.03.13 |
백준 C# - 11725 +) 풀이 (0) | 2024.03.04 |
백준 C# - 17219 (1) | 2024.02.24 |
백준 C# - 1620 +) 풀이 (0) | 2024.02.24 |
댓글