문제 출처
https://www.acmicpc.net/problem/11655
11655번: ROT13
첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다.
www.acmicpc.net
접근 방식 및 풀이
- 유니코드를 사용하면 쉽게 풀수 있다.
소스 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
sc.close();
Character[] strings= new Character[str.length()];
for (int i = 0; i <str.length() ; i++) {
if(str.charAt(i) == 32){
strings[i] = str.charAt(i);
}else if(str.charAt(i) >=48 && str.charAt(i) <=57 ){
strings[i] = str.charAt(i);
}else if(str.charAt(i) >=65 && str.charAt(i) <=90 ){
//대문자
if(str.charAt(i)+13 > 90){
strings[i] = Character.valueOf((char) (str.charAt(i)-13));
}else {
strings[i] = Character.valueOf((char) (str.charAt(i)+13));
}
}else if(str.charAt(i) >=97 && str.charAt(i) <=122 ){
//소문자
strings[i] = str.charAt(i);
if(str.charAt(i)+13 > 122){
strings[i] = Character.valueOf((char) (str.charAt(i)-13));
}else {
strings[i] = Character.valueOf((char) (str.charAt(i)+13));
}
}
}
for (int i = 0; i <str.length() ; i++) {
System.out.print(strings[i]);
}
}
}
결과
'Competition > Baekjoon' 카테고리의 다른 글
[백준] 2667번 단지번호 매기기 (0) | 2020.03.22 |
---|---|
[백준] 1991번 트리순회 (0) | 2020.03.20 |
[백준] 11652번 카드 갯수 세기 (0) | 2020.03.20 |