mQueue는 의미 없는 문자들이 나열된 문자열을 보다가 이를 보다 작은 공간에 저장하는 방법은 없을까 고민하다 한가지 가설을 세웠다.
char는 1바이트 int32는 4바이트를 저장하니 문자열 4개를 정수형으로 저장 후 특정 숫자로 나눈 나머지를 저장하면 문자열의 특성은 남아있으면서, 4글자를 1바이트에 압축하여 보관할 수 있지 않을까? 라는 가설을 세웠다.
이 가설을 테스트하기 위해 아래 그림과 같이 4글자씩 하나의 4바이트 정수형으로 변환하고 부족한 경우, 0으로 채우기로 했다. 이를 29로 나눈 나머지 ‘A’부터 아스키코드 순서에 따라 저장하여 보관하기로 했다. 예를 들면 “safe”는 Y에 할당하여 저장하는 방식이다 .
mQueue의 실험을 위해 가설을 테스트하기 위한 알고리즘을 작성해 보자.
첫 줄에 테스트케이스의 수 T가 주어진다.
이어서 공백 없이 N글자의 문자열이 주어진다.
T < 400
3 < N < 400
변환된 데이터를 29로 나눈 나머지 값을 알파벳 ‘A’부터 아스키 코드 순에 따라 출력한다.
한 줄에 한 테스트 케이스씩 출력한다.
1
safe
Y
바윗돌 깨뜨려 돌덩이
돌덩이 깨뜨려 돌멩이
돌멩이 깨뜨려 자갈돌
자갈돌 깨뜨려 문자열
랄라랄랄라 랄랄라
랄라랄랄라 랄랄라