아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

비밀 메시지

면접 대비

시간 제한2초메모리 제한256 MB

요약
각 메시지에 별표를 채워 정사각형으로 만든 뒤 시계 방향으로 90도 돌려 별표를 빼고 행 순서대로 읽습니다.
난이도

쉬움10점 중 2점

유형
행렬, 시뮬레이션
정답자
아직 제출이 없습니다

문제

잭과 질은 도청을 걱정하지 않고 대화하려고 암호화 방법을 하나 만들었다. 방법은 다음과 같다.

원본 메시지의 길이를 LL이라 하고, LL 이상인 제곱수 중 가장 작은 값을 MM이라 하자. 메시지 뒤에 별표 *를 M−LM - L개 붙여 길이가 MM인 메시지를 만든다. 이 메시지를 K×KK \times K 표에 행 우선 순서로 채운다. 여기서 K2=MK^2 = M이다. 행 우선 순서란 위쪽 행부터 차례로 채우고, 각 행에서는 왼쪽 칸부터 채우는 것을 말한다. 표를 시계 방향으로 90도 회전한다. 회전한 표를 행 우선 순서로 읽으면서 별표를 뺀 결과가 암호문이다.

예를 들어 원본 메시지가 iloveyouJack이면 길이가 L=12L = 12이므로, 별표를 붙인 메시지는 iloveyouJack****이고 길이는 M=16M = 16이다. 회전 전과 회전 후의 표는 다음과 같다.

회전 전         회전 후
i l o v         * J e i
e y o u         * a y l
J a c k         * c o o
* * * *         * k u v

별표를 빼고 읽으면 암호문은 Jeiaylcookuv이다.

입력

첫 줄에 원본 메시지의 개수 NN이 주어진다 (1≤N≤1001 \le N \le 100). 다음 NN개 줄에는 암호화할 메시지가 한 줄에 하나씩 주어진다. 메시지는 알파벳 소문자와 대문자로만 이루어지고, 길이 LL은 1≤L≤100001 \le L \le 10000을 만족한다.

출력

원본 메시지마다 암호문을 한 줄에 하나씩 출력한다.

예제3

  1. 예제 1

    입력
    2
    iloveyoutooJill
    TheContestisOver
    
    예상 출력
    iteiloylloooJuv
    OsoTvtnheiterseC
    
  2. 예제 2

    입력
    1
    iloveyouJack
    
    예상 출력
    Jeiaylcookuv
    
  3. 예제 3

    입력
    3
    a
    Z
    ab
    
    예상 출력
    a
    Z
    ab