728x90
BASE64란?
- 8bit 이진 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 문자로 표현하기 위해 만들어진 인코딩 방식
- ASCII문자 하나는 64진법의 숫자 하나를 의마한다 (base64를 번역하면 64진법이라는 뜻)
- 전자메일을 통한 이진 데이터 전송 등에 많이 사용
- Base64 변환 표는 다음과 같다(출처: 나무위키)
https://www.acmicpc.net/problem/10935
자바코드
public class Main {
public static void main(String[] args) throws IOException, NoSuchAlgorithmException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String plainText = br.readLine();
byte[] plainTextByte = plainText.getBytes();
Encoder encoder = Base64.getEncoder();
byte[] encodeByte = encoder.encode(plainTextByte);
System.out.println(new String(encodeByte));
}
}
- 입력받은 String값을 byte 배열로 바꾼다
- Base64 인코더를 받아온다
- 해당 인코더로 인코딩을 한 byte배열을 받는다
- byte배열을 String으로 만들어 출력
https://www.acmicpc.net/problem/10936
자바코드
public class Main {
public static void main(String[] args) throws IOException, NoSuchAlgorithmException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String encodedText = br.readLine();
byte[] encodedTexttByte = encodedText.getBytes();
Decoder decoder = Base64.getDecoder();
byte[] plainTextByte = decoder.decode(encodedTexttByte);
System.out.println(new String(plainTextByte));
}
}
- 인코딩방식과 마찬가지로 그냥 디코더를 받아서 String으로 변환하면 된다
참고자료
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[Java] 백준 9324 진짜 메시지 - 실버5 (0) | 2023.07.16 |
---|---|
[Java] 백준 문자열 브론즈 모음 (0) | 2023.07.16 |
[Java] 백준 10930 SHA-256 (0) | 2023.07.16 |
[Java] 백준 6118 숨바꼭질 - 실버2 (0) | 2023.07.16 |
[Java] 백준 14562 태권왕 - 실버2 (0) | 2023.07.15 |