[알고리즘]/백준

백준 11655 자바 - ROT13

broship 2021. 6. 25. 08:24

문제


 

 

문제해결


- char 형은 아스키코드로 되어있기 때문에 간단하게 += 13을 해주면 된다

- z, Z를 넘어가는 경우는 범위를 벗어나는 경우이므로 범위를 벗어나는 만큼 a, A에서 더해주면 된다

import java.util.Scanner;

public class B11655 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c>='a' && c<='z'){
                c += 13;
                if (c>'z'){
                    int tmp = c - 'z';
                    c = 'a'-1;
                    c += tmp;
                }
            } else if (c>='A' && c<='Z'){
                c += 13;
                if (c>'Z'){
                    int tmp = c - 'Z';
                    c = 'A'-1;
                    c += tmp;
                }
            }
            sb.append(c);
        }
        System.out.println(sb);
    }
}