[백준] 11655번 ROT13 - Java, 자바

7838 단어 백준백준

문제

https://www.acmicpc.net/problem/11655

코드


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// 11655번 ROT13
public class boj_7_11655 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        char[] rot13 = br.readLine().toCharArray();
        for (int i = 0; i < rot13.length; i++) {
            if (rot13[i] >= 'A' && rot13[i] <= 'Z') {
                if (rot13[i] >= 'N') {
                    rot13[i] -= 13;
                } else {
                    rot13[i] += 13;
                }
            } else if (rot13[i] >= 'a' && rot13[i] <= 'z') {
                if (rot13[i] >= 'n') {
                    rot13[i] -= 13;
                } else {
                    rot13[i] += 13;
                }
            }
        }

        for (char i : rot13)
            sb.append(i);

        System.out.println(sb);
    }
}

풀이

  • 소문자와 대문자의 아스키 코드값이 다르다.
  • N보다 크거나 같은 수이면 N보다 작으면 +13을 해준다.

좋은 웹페이지 즐겨찾기