๋ฌธ์์ด ์ฒ๋ฆฌ ๋ฌธ์ ์ค์์ ๊ฝค๋ ๋จธ๋ฆฌ๋ฅผ(?) ์ฐ๊ฒ ๋ง๋ค์๋ ๋ฌธ์ ๋ค.
๋จผ์ , ROT๋ฌธ์๋ ๋ฌธ์๋ฅผ 13๊ธ์์ฉ ๋ค๋ก ๋ฏธ๋ฃฌ ๊ฐ์ผ๋ก ํํํ๋ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด
A ๋ฅผ ROT ์์ผ๋ก ๋ฐ๊พธ๋ฉด 1๋ฒ์์ 13๋ฒ ๋ค์ ์๋ ๋ฌธ์์ธ N์ด ๋๋ ๊ฒ์ด๋ค.
์ ์ํ ์ ์ด ํ๋ ์๋ค.
O์ ๊ฒฝ์ฐ ROT ์์ผ๋ก ๋ฌธ์๋ฅผ ๋ณ๊ฒฝํ๋ฉด Z๋ฅผ ๋์ด์ ๋ค์ ๋ฌธ์์ ์์๊ฐ A๋ถํฐ ์์ํ๊ธฐ ๋๋ฌธ์ B๊ฐ ๋๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ , ์๋ฌธ์๋ ์๋ฌธ์๋ฅผ ์ ์งํด์ผํ๊ณ ๋๋ฌธ์๋ ๋๋ฌธ์๋ฅผ ์ ์งํด์ผํ๋ค.
๋ง์ฝ, ์ฐ๋ฆฌ๊ฐ 'a'์ ์์คํค์ฝ๋๊ฐ ๋ช์ธ์ง ๋ชฐ๋ผ๋, [์ ๋ ฅ๋๋ ๋ฌธ์ - 'a'] ์ ๊ฐ์ 0 ์์ 25๊น์ง์์ ์ ์ ์๋ค.
์๋ํ๋ฉด, 'a'-'a' ~ 'z'-'a' ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
[์ ๋ ฅ๋๋ ๋ฌธ์ - 'a']+13 ์ด 'a'์ ์์น๋ฅผ 0์ผ๋ก ์ก์์ ๋, 13๋ฒ์งธ ๋ค๋ก ๋ฏธ๋ฃฌ๊ฐ์ ๋ํ๋ด๊ณ , ์ด ๊ฐ์ด 25๋ฅผ ๋์ ์ ์๊ธฐ ๋๋ฌธ์ 26์ผ๋ก ๋๋ ๋๋จธ์ง๊ฐ O์ ๊ฒฝ์ฐ์ ๊ฐ์ด 13๋ฒ์งธ ๋ค ๋ฌธ์๊ฐ Z๋ฅผ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํด์ค ์ ์๋ค.
์๋์ ์ธ ์์น๋ฅผ ๊ตฌํ๋ค ๋ค์ 'a'๋ฅผ ๋ํ๋ฉด ๊ทธ ๊ฐ์ ์ถ๋ ฅํ ์ ์๋ค.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
char[] afterChange = new char[input.length()];
for (int i = 0; i < input.length(); i++) {
afterChange[i] = changeROT(input.charAt(i));
}
System.out.println(String.valueOf(afterChange));
}
static char changeROT(char input) {
char result=input;
if (input >= 'a' && input <= 'z') {
result = (char) (((input - 'a') + 13) % 26 +'a');
} else if (input >= 'A' && input <= 'Z') {
result = (char) (((input - 'A') + 13) % 26 +'A');
}
return result;
}
}