백준 문제풀이

11655. ROT13 (자바, Java)

뮤츠 2022. 11. 20. 20:28

 

어려운 문제는 아니다.

숫자와 공백은 그대로 출력하고, 영문자는 13번째씩 페어를 이루는 알파벳으로 변환하면 된다.

1~26번째 알파벳 중 14~26은 -13을, 1~13은 +13을 해주면 된다.

 

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

public class Main {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str = br.readLine();
		StringBuilder ans = new StringBuilder();
		
		for (int i=0; i<str.length(); i++) {
			char ch = str.charAt(i);
			if (ch==' ') {
				ans.append(ch);
			} else if ('0'<=ch && ch<='9') {
				ans.append(ch);
			} else if ('a'<=ch && ch<='m') {
				ans.append((char)(ch+13));
			} else if ('A'<=ch && ch<='M') {
				ans.append((char)(ch+13));
			} else if ('n'<=ch && ch<='z') {
				ans.append((char)(ch-13));
			} else if ('N'<=ch && ch<='Z') {
				ans.append((char)(ch-13));
			}
		}
		System.out.println(ans);
	}

}