#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

+ Recent posts