import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.Base64;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for (int test_case = 1; test_case <= T; test_case++) {
String str = br.readLine();
String result = new String(Base64.getDecoder().decode(str));
System.out.println("#" + test_case + " " + result);
}
}
}
✅ 키워드
자바에는 인코딩/디코딩 시에 사용할 수 있는 라이브러리가 있다.
java.util.Base64이다.
Base64란, 64문자의 영숫자를 이용하여 멀티 바이트 문자열이나 이진 데이터를 다루기 위한 인코딩 방식이다.
위 코드에서 Base64.getDecoder().decode(str)이란,
입력받은 str을 디코딩한 문자열을 가져와서 result에 저장한다는 뜻이다.
만약 이 라이브러리를 사용하지 않고 구현한다면 꽤 복잡한 과정일텐데,
1. 표를 보고 입력받은 문자들을 각각 대응하는 숫자들로 변환한다.
2. 각 숫자들을 6자리 이진수로 표현하고, 이 이진수들을 일렬로 나열한다.
3. 일렬로 나열한 이진수들을 8자리씩 끊는다.
4. 8자리씩 끊은 수 각각들을 십진수로 변환한다.
5. 각 십진수들을 아스키코드로 변환한다.