728x90
[백준] 203 - 자료구조 1 (참고) : ROT13 (11655번 JAVA)
[풀이과정]
* 아스키 코드를 이용하는 문제
A ~ Z : 65 ~ 90
a ~ z : 97 ~ 122
0 ~ 9 : 48 ~ 57
공백 : 32
변형된 문자와 본래 문자를 각각 대응시켜보면, 아스키 코드 13의 차이를 가지고 있는 것을 볼 수 있다.
대문자의 경우)
65 ~ 77 (13개) : +13
78 ~ 90 (13개) : -13
으로 변환한 모습이고
소문자의 경우)
97 ~ 109 (13개) : +13
110 ~ 122 (13개) : -13
으로 변환한 모습이다.
숫자와 공백은 변환 없이 출력한다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public 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));
String str = br.readLine();
StringBuilder sb = new StringBuilder();
for(int i=0; i<str.length(); i++){
int c = (int)str.charAt(i); // 문자별 아스키 코드
// 전반부 대,소문자
if( (65<=c && c<=77) || (97<=c && c<=109) ){
sb.append((char) (c+13));
}
// 후반부 대,소문자
else if( (78<=c && c<=90) || (110<=c && c<=122) ){
sb.append((char) (c-13));
}
// 숫자
else if(48<=c && c<=57){
sb.append((char) c);
}
// 공백
else if(c == 32){
sb.append((char) c);
}
}
bw.write(sb.toString());
bw.flush();bw.close();
}
}
728x90
'백준 > 코드 플러스 (알고리즘 기초 - 1)' 카테고리의 다른 글
[백준] 300 - 수학 1 : 골드바흐의 추측 (6588번 JAVA) (0) | 2023.01.07 |
---|---|
[백준] 300 - 수학 1 : 최대공약수와 최소공배수 (2609번 JAVA) (0) | 2023.01.07 |
[백준] 203 - 자료구조 1 (참고) : 문자열 분석 (10820번 JAVA) (0) | 2023.01.06 |
[백준] 203 - 자료구조 1 (참고) : 후위 표기식 (1918번 JAVA) (0) | 2023.01.06 |
[백준] 203 - 자료구조 1 (참고) : 후위 표기식2 (1935번 JAVA) (0) | 2023.01.06 |