Competition/Baekjoon

[백준] 11655번 ROT13

bisi 2020. 3. 21. 13:25
문제 출처 

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