#include <iostream>
#include <queue>
#include <string>
#include <string.h>
bool visit[10000] = {};
int main()
{
int T = 0;
std::cin >> T;
for (int i = 0; i < T; ++i)
{
std::queue<std::pair<int, std::string>> que = {};
int N = 0;
int Ans = 0;
std::cin >> N >> Ans;
que.push({ N, "" });
visit[N] = true;
while (!que.empty())
{
int iNumber = que.front().first;
std::string s = que.front().second;
que.pop();
if (Ans == iNumber)
{
std::cout << s << "\n";
break;
}
int iTemp = (iNumber * 2) % 10000;
if (!visit[iTemp])
{
visit[iTemp] = true;
que.push({ iTemp, s + 'D' });
}
iTemp = (iNumber - 1) % 10000;
if (iTemp < 0)
iTemp = 9999;
if (!visit[iTemp])
{
visit[iTemp] = true;
que.push({ iTemp, s + 'S' });
}
iTemp = (iNumber % 1000) * 10 + (iNumber / 1000);
if (!visit[iTemp])
{
visit[iTemp] = true;
que.push({ iTemp, s + 'L' });
}
iTemp = iNumber / 10 + (iNumber % 10) * 1000;
if (!visit[iTemp])
{
visit[iTemp] = true;
que.push({ iTemp, s + 'R' });
}
}
memset(visit, false, sizeof(visit));
}
return 0;
}
처음엔 그냥 Q만 넣어봤는데 그럼 메모리 초과가 나왔습니다.
그래서 visit을 추가했습니다.
'오늘의 알고리즘' 카테고리의 다른 글
[C++] 백준 10026 적록색약 (0) | 2022.09.18 |
---|---|
[C++] 백준 9375 패션왕 신해빈 (0) | 2022.09.17 |
[C++] 백준 6064 카잉달력 (0) | 2022.09.15 |
[C++] 백준 5545 IOIOI (0) | 2022.09.14 |
[C++] 백준 5430 AC (0) | 2022.09.13 |