Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- list 사용법
- Tostring 사용법
- InsertRange
- 알고리즘
- IP주소
- OSI 3계층
- 서브넷
- List 찾기
- c#
- Visual Studio
- 기본 게이트웨이
- Parse 사용법
- List 추가
- AddRange
- C# Contains
- C++
- list
- List 제거
- c# list
- 호스트 주소
- 네트워크 용어
- BFS
- 네트워크
- TCP/IP
- C# Find
- 백준
- 서브넷 마스크
- List 정렬
- 호스트
- DP
Archives
- Today
- Total
CodeLabs
[백준 / C#] 9019 : DLSR 본문
public class Pair
{
public int num;
public string str;
public Pair(int num, string str)
{
this.num = num;
this.str = str;
}
}
internal class Program
{
static int t;
static int[] a, b;
static string[] result;
static void BFS(int flag)
{
var queue = new Queue<Pair>();
queue.Enqueue(new Pair(a[flag], ""));
bool[] visited = new bool[10000];
visited[a[flag]] = true;
while(queue.Count != 0)
{
int curNum = queue.Peek().num;
string curStr = queue.Dequeue().str;
if(curNum == b[flag])
{
result[flag] = curStr;
return;
}
int D, S, L, R;
D = (curNum * 2) % 10000;
if (!visited[D])
{
visited[D] = true;
queue.Enqueue(new Pair(D, curStr + "D"));
}
S = curNum - 1 < 0 ? 9999 : curNum - 1;
if (!visited[S])
{
visited[S] = true;
queue.Enqueue(new Pair(S, curStr + "S"));
}
L = (curNum %1000)*10 + (curNum /1000);
if (!visited[L])
{
visited[L] = true;
queue.Enqueue(new Pair(L, curStr + "L"));
}
R = curNum / 10 + (curNum % 10) * 1000;
if (!visited[R])
{
visited[R] = true;
queue.Enqueue(new Pair(R, curStr + "R"));
}
}
}
static void Solution()
{
for (int i = 0; i < t; i++)
{
BFS(i);
}
}
static void Input()
{
t = int.Parse(Console.ReadLine());
a = new int[t];
b = new int[t];
result = new string[t];
for (int i = 0; i < t; i++)
{
var input = Console.ReadLine().Split();
a[i] = int.Parse(input[0]);
b[i] = int.Parse(input[1]);
}
}
static void Output()
{
foreach (string str in result)
{
Console.WriteLine(str);
}
}
static void Solve()
{
Input();
Solution();
Output();
}
static void Main(string[] args)
{
Solve();
}
}
'백준 > 5000~' 카테고리의 다른 글
[백준 / C#] 7576 : 토마토 (0) | 2023.06.30 |
---|---|
[백준 / C#] 7569 : 토마토 (0) | 2023.06.28 |