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

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

문자열 암호화

면접 대비

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

요약
평문에서 공백을 없애고 모두 대문자로 바꾼 뒤, 주어진 전위 암호 해독 규칙의 역과정을 적용해 대응하는 암호문을 만든다.
난이도

보통10점 중 5점

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

문제

남이 함부로 내용을 읽지 못하도록, 많은 사람들은 암호화 알고리즘을 이용해 평문(message)을 암호문(ciphertext)으로 바꿉니다. 전치 암호(transposition cipher)는 문자 자체를 바꾸는 것이 아니라 문자들이 놓이는 순서만 뒤섞는 방식이며, 나중에 다시 평문으로 되돌릴 수 있어야 합니다.

이 문제에서 쓰는 전치 암호의 복호화(암호문 → 평문) 규칙은 다음과 같습니다. 암호문의 첫 번째 문자를 읽은 뒤, 그로부터 NN칸 떨어진 문자를 읽습니다. (그 사이에 있는 N−1N-1개의 문자는 건너뜁니다.) 이를 반복하다가 문자열의 끝을 지나가면, 이번에는 두 번째 문자로 돌아가 똑같은 과정을 반복합니다. 이렇게 계속하여 암호문의 모든 문자를 한 번씩 읽으면 평문이 됩니다.

여러분이 구현할 것은 그 반대 과정인 암호화입니다. 먼저 평문에서 단어 사이의 공백을 모두 없애고 모든 알파벳을 대문자로 바꾼 문자열을 만든 다음, 위의 복호화 과정을 적용했을 때 정확히 그 문자열이 나오도록 하는 암호문을 만들어 출력하세요.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있습니다.

각 테스트 케이스는 두 줄로 구성됩니다. 첫 번째 줄에는 정수 NN (1≤N≤10001 \le N \le 1000)이 주어지고, 두 번째 줄에는 평문이 주어집니다.

평문의 길이는 최소 1자, 최대 10,000자이며, 알파벳 대소문자와 공백으로만 이루어져 있습니다.

첫 번째 줄에 N=0N = 0이 주어지면 입력이 끝나며, 그 테스트 케이스는 처리하지 않습니다.

출력

각 테스트 케이스마다, 위에서 설명한 방법으로 만든 암호문을 한 줄에 하나씩 출력하세요. 암호문은 평문에서 공백을 제거하고 모든 알파벳을 대문자로 바꾼 뒤 문자들의 순서를 재배치한 문자열입니다.

예제1

  1. 예제 1

    입력
    2
    CTU Open Programming Contest
    7
    This is a secret message that noone should ever see Lets encrypt it
    15
    text too short
    0
    
    예상 출력
    CMTMUIONPGECNOPNRTOEGSRTA
    TESNUECHCAOLERIRGODLYSEENEEPITTEVTTSMHSESIAEAHRETSSTOSN
    TEXTTOOSHORT