-
[BOJ] 심심한 준규Algorithm/BOJ 2020. 7. 2. 18:58
[2892] 심심한 준규
https://www.acmicpc.net/problem/2892
- 문제 설명의 표에있는 excrypted message가 입력이 되고,
- 암호화된 메시지의 글자가 문자인지 아닌지 출력하는 문제
Solution
- 애초에 xor 연산하는 방법도 몰라서 답을 봤다.
- excrypted message에서 문자와 문자가 아닌 글자의 숫자 범위를 보고 유추하는 방법이였다.
- '0'~'9'까지 숫자키와 'a'~'z'까지의 소문자를 xor 연산했을 때 나오는 결과 범위는 64~95 까지 이고,
- '0'~'9'까지 숫자키와 ' ', '.'을 xor 연산했을 때 나오는 숫자범위는 16~31 까지이다.
- excrypted message를 16진수 정수로 변환했을 때 어떤 범위에 속하는지에 따라 '-' 혹은 '.'으로 메시지를 재구성한다.
소스코드
123456789101112131415161718192021222324252627282930import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));int n = stoi(br.readLine());String[] arr = br.readLine().split(" ");StringBuilder sb = new StringBuilder();for (String s : arr) {if (Integer.parseInt(s, 16) >= 64 && Integer.parseInt(s, 16) <= 95) {sb.append("-");} else {sb.append(".");}}bw.write(sb.toString());bw.close();}static int stoi(String s) {return Integer.parseInt(s);}}cs 'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] 파티 (0) 2020.08.26 [BOJ] 최단경로 (0) 2020.08.25 [BOJ] 나는야 포켓몬 마스터 이다솜 (0) 2020.05.27 [BOJ] 회사에 있는 사람 (0) 2020.05.27 [BOJ] 패션왕 신해빈 (0) 2020.05.27