만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

탕수육 게임

면접 대비

시간 제한1초메모리 제한128 MB

요약
서로 다른 글자로 이루어진 단어가 주어질 때, 두 플레이어가 항상 올바른 다음 글자를 말하도록 반복해서 외워야 하는 가장 짧은 순환 문자열을 각각 구합니다.
난이도

보통10점 중 5점

유형
문자열, 수학, 시뮬레이션
정답자
아직 제출이 없습니다

문제

환규와 태욱이는 둘이서 하는 간단한 놀이인 탕수육 게임을 한다. 규칙은 다음과 같다.

  1. 누가 먼저 말할지 순서를 정한다.
  2. 먼저 시작하는 사람이 단어의 첫 글자를 말한다.
  3. 그다음부터는 두 사람이 번갈아 가며, 자기 차례에 바로 앞사람이 말한 글자의 다음 글자를 말한다.
  4. 앞사람이 단어의 마지막 글자를 말했다면 자기 차례에는 단어의 첫 글자를 말한다.
  5. 자기 차례에 틀린 글자를 말하면 진다.

단어가 "탕수육"이면 게임은 탕, 수, 육, 탕, 수, 육, 탕, 수, 육, ... 순서로 이어진다. 먼저 시작한 사람은 첫 번째, 세 번째, 다섯 번째 글자를 맡으므로 실제로 말하는 것은 탕, 육, 수, 탕, 육, 수, ... 이다. 그래서 게임을 시작하기 전에 "탕육수"만 외워 두고 그 순서대로 계속 반복하면 상대가 무엇을 말하든 절대 틀리지 않는다.

"탕육"이나 "탕육수탕"을 외우면 외운 문자열을 처음부터 순서대로 반복해 말했을 때 자기 차례에 틀린 글자가 나와 게임에서 진다. "탕육수탕육수"를 외워도 틀리지는 않지만 "탕육수"만으로도 게임을 진행할 수 있으므로, 외워야 하는 문자열 중 가장 짧은 것을 답으로 본다. 나중에 시작한 사람도 마찬가지로 "수탕육"만 외운 뒤 그 순서대로 반복하면 절대 틀리지 않는다.

두 사람은 이번에는 한글 대신 알파벳으로 게임을 한다. 단어가 "ABC"이고 환규가 먼저 시작하면 환규는 "ACB"를, 태욱이는 "BAC"를 외우면 지지 않는다. 게임에 사용할 알파벳 문자열이 주어질 때, 두 사람이 각각 미리 외워야 하는 문자열 중 가장 짧은 것을 출력하는 프로그램을 작성하시오.

입력

입력은 표준 입력으로 주어진다. 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 TT가 주어진다. 각 테스트 케이스의 첫째 줄에 게임에 사용할 문자열이 주어진다. 문자열의 길이는 1 이상 26 이하이다. 문자열은 알파벳 대문자로만 이루어져 있으며 같은 알파벳을 두 번 이상 포함하지 않는다.

출력

출력은 표준 출력을 사용한다. 각 테스트 케이스마다 두 줄을 입력 순서대로 출력한다. 첫째 줄에는 먼저 시작한 사람이 외워야 하는 문자열 중 가장 짧은 것을, 둘째 줄에는 나중에 시작한 사람이 외워야 하는 문자열 중 가장 짧은 것을 알파벳 대문자로 출력한다.

예제4

  1. 예제 1

    입력
    4
    ABC
    ABCFXZ
    K
    DY
    
    예상 출력
    ACB
    BAC
    ACX
    BFZ
    K
    K
    D
    Y
    
  2. 예제 2

    입력
    1
    A
    
    예상 출력
    A
    A
    
  3. 예제 3

    입력
    1
    AB
    
    예상 출력
    A
    B
    
  4. 예제 4

    입력
    3
    Z
    QW
    MLK
    
    예상 출력
    Z
    Z
    Q
    W
    MKL
    LMK