본문 바로가기
컴퓨터 공학/백준

[백준] JAVA 자바 : ROT13 (11655번)

by kim-dev 2024. 1. 20.
반응형

ROT13 암호화는 문자열에 있는 대문자나 소문자를 찾으면 해당 알파벳의 ASCII코드에서 13번째 뒤 문자를 출력하는 암호화 방식이다.
크게 어렵지 않은 알고리즘이라(심지어 브론즈) 아마 다들 어렵지 않게 풀었을 것이다.

import java.io.*;

public class ROT13_11655 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        
        String s = br.readLine();
        for (int i=0; i<s.length(); i++) {
            char c = s.charAt(i);
            if ('A' <= c && c <= 'Z') { // 대문자인 경우
                int tmp = (int)c + 13; // 13번째 뒤의 문자를 뽑음
                if (tmp > 'Z') { // 그러나 Z를 넘어가는 경우
                    tmp -= 26; // A부터 다시 돌린다
                }
                sb.append((char)tmp);
            } else if ('a' <= c && c <= 'z') { // 소문자인 경우
                int tmp = (int)c + 13; // 13번째 뒤의 문자를 뽑음
                if (tmp > 'z') { // 그러나 z를 넘어가는 경우
                    tmp -= 26; // a부터 다시 돌린다
                }
                sb.append((char)tmp);
            } else {
                sb.append(c);
            }
        }
        System.out.print(sb);
        
        br.close();
    }

}

 

 

로그인

 

www.acmicpc.net

 

 

작성일자: 2023-09-08