BASE32 인코딩
시간 제한1초메모리 제한256 MB
입력 문자열을 바이트로 읽어 표준 알파벳과 패딩으로 Base32 인코딩을 출력합니다.
문제
문자열 S를 BASE32로 인코딩한 결과를 출력하는 프로그램을 작성하시오.
BASE32 인코딩은 다음 순서로 진행한다.
- S를 ASCII 바이트 열로 본다.
- 바이트를 앞에서부터 5개씩 묶는다. 5바이트는 40비트이고, 이를 5비트씩 8조각으로 나눈다.
- 각 조각이 나타내는 0 이상 31 이하의 값을 문자표
ABCDEFGHIJKLMNOPQRSTUVWXYZ234567의 같은 위치에 있는 문자로 바꾼다. 값 0은A, 값 25는Z, 값 26은2, 값 31은7이다. - 마지막 묶음의 바이트가 5개보다 적으면 뒤에 0비트를 채워 40비트로 만든 다음 같은 방법으로 8글자를 만들고, 남은 바이트 수에 따라 뒤쪽 글자를
=로 바꾼다. 남은 바이트가 1개면 뒤 6글자, 2개면 4글자, 3개면 3글자, 4개면 1글자가=이다.
입력
첫째 줄에 문자열 S가 주어진다. S는 알파벳 대문자와 소문자, 숫자로만 이루어져 있고, 길이는 1 이상 50 이하이다.
출력
첫째 줄에 S를 BASE32로 인코딩한 값을 출력한다.