ROT13 - 11655

Seongjin Jo·2023년 4월 2일
0

Baekjoon

목록 보기
8/51

문제

풀이

import java.util.Scanner;

// ROT13 - B1
public class ex11655 {
    static String s;

    public static void solution(){
        StringBuffer sb = new StringBuffer();
        char[] chars = s.toCharArray();

        for(int i=0; i<chars.length; i++){
            if(chars[i]>='A' && chars[i]<='Z'){
                if(chars[i]>='N'){
                    chars[i]-=13;
                }
                else chars[i]+=13;
            }
            else if(chars[i]>='a' && chars[i]<='z'){
                if(chars[i]>='n'){
                    chars[i]-=13;
                }
                else chars[i]+=13;
            }
        }
        for(char c : chars) System.out.print(c);

    }
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        s = sc.nextLine();
        solution();
    }
}

브론즈 문제. 헤맸다 ㅎ

  1. 우선 13문자씩 밀면된다. 근데 여기서 소문자 대문자 구별을 해준다. 왜냐면 아스키 코드 값이 달라서 한번에 묶어서 하면 이상한 값이 나오더라.
  2. 그리고 N,n보다 큰 문자는 13문자씩 앞으로 못밀기때문에 13문자씩 빼주면 된다.

0개의 댓글