๋ฌธ์
ROT13์ ์นด์ด์ฌ๋ฅด ์ํธ์ ์ผ์ข ์ผ๋ก ์์ด ์ํ๋ฒณ์ 13๊ธ์์ฉ ๋ฐ์ด์ ๋ง๋ ๋ค.
์๋ฅผ ๋ค์ด, "Baekjoon Online Judge"๋ฅผ ROT13์ผ๋ก ์ํธํํ๋ฉด "Onrxwbba Bayvar Whqtr"๊ฐ ๋๋ค. ROT13์ผ๋ก ์ํธํํ ๋ด์ฉ์ ์๋ ๋ด์ฉ์ผ๋ก ๋ฐ๊พธ๋ ค๋ฉด ์ํธํํ ๋ฌธ์์ด์ ๋ค์ ROT13ํ๋ฉด ๋๋ค. ์์์ ์ํธํํ ๋ฌธ์์ด "Onrxwbba Bayvar Whqtr"์ ๋ค์ ROT13์ ์ ์ฉํ๋ฉด "Baekjoon Online Judge"๊ฐ ๋๋ค.
ROT13์ ์ํ๋ฒณ ๋๋ฌธ์์ ์๋ฌธ์์๋ง ์ ์ฉํ ์ ์๋ค. ์ํ๋ฒณ์ด ์๋ ๊ธ์๋ ์๋ ๊ธ์ ๊ทธ๋๋ก ๋จ์ ์์ด์ผ ํ๋ค. ์๋ฅผ ๋ค์ด, "One is 1"์ ROT13์ผ๋ก ์ํธํํ๋ฉด "Bar vf 1"์ด ๋๋ค.
๋ฌธ์์ด์ด ์ฃผ์ด์ก์ ๋, "ROT13"์ผ๋ก ์ํธํํ ๋ค์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ํ๋ฒณ ๋๋ฌธ์, ์๋ฌธ์, ๊ณต๋ฐฑ, ์ซ์๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด S๊ฐ ์ฃผ์ด์ง๋ค. S์ ๊ธธ์ด๋ 100์ ๋์ง ์๋๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ S๋ฅผ ROT13์ผ๋ก ์ํธํํ ๋ด์ฉ์ ์ถ๋ ฅํ๋ค.
์๊ฐ ์ ํ | ๋ฉ๋ชจ๋ฆฌ ์ ํ | ์ ์ถ | ์ ๋ต | ๋งํ ์ฌ๋ | ์ ๋ต ๋น์จ |
---|---|---|---|---|---|
1 ์ด | 256 MB | 23573 | 14155 | 11914 | 60.674% |
https://www.acmicpc.net/problem/11655
ํ์ด
ROT 13 ๋๋ฌด์ํค
ROT 13์ ๋จ์ํ ์นด์ด์ฌ๋ฅด ์ํธ์ ์ผ์ข
์ผ๋ก ์์ด ์ํ๋ฒณ์ 13๊ธ์์ฉ ๋ฐ์ด์ ๋ง๋ ๋ค.
๊ณ์ฐํด์ผํ ๋ถ๋ถ์ ์๋ฌธ์๊ฐ ๋๋ฌธ์, ์๋ฌธ์ ๋ฒ์๋ฅผ ๋์ด๊ฐ๋์ด๋ค. ์๋ฌธ์์ ์์คํค์ฝ๋๊ฐ ๋๋ฌธ์๋ 65 ~ 90
๊น์ง, ์๋ฌธ์๋ 97 ~ 122
๊น์ง์ธ๋ฐ, 13์ ๋ํ๊ฒ๋๋ฉด ๋ฒ์๋ฅผ ๋์ด๊ฐ๋ค. ์ด๋ ๊ฒ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ์๋ ์ํ๋ฒณ ์ ์ฒด๊ฐฏ์ 26
์ ๋นผ์ฃผ๋ฉด ๋๋ค.
์ฝ๋
public class ROT13 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String string = br.readLine();
for(int i=0; i<string.length(); i++){
char c = string.charAt(i);
if(c>='a' && c<='z'){
if(c + 13 > 'z'){ //c + 13 ์ด ์๋ฌธ์ ๋ฒ์๋ฅผ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ
c = (char) (c - 13);
sb.append(c);
}else{ //c + 13 ์ด ์๋ฌธ์ ๋ฒ์๋ฅผ ๋์ด๊ฐ์ง ์๋๊ฒฝ์ฐ ์ถ๋ ฅ
c = (char) (c + 13);
sb.append(c);
}
}else if(c>='A' && c<='Z'){
if(c + 13 > 'Z'){ //c + 13 ์ด ๋๋ฌธ์ ๋ฒ์๋ฅผ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ
c = (char) (c - 13);
sb.append(c);
}else{ //c + 13 ์ด ๋๋ฌธ์ ๋ฒ์๋ฅผ ๋์ด๊ฐ์ง ์๋๊ฒฝ์ฐ ์ถ๋ ฅ
c = (char) (c + 13);
sb.append(c);
}
}else { //์๋ฌธ์๊ฐ ์๋๊ฒฝ์ฐ ๊ทธ๋๋ก ์ถ๋ ฅ
sb.append(c);
}
}
System.out.println(sb);
br.close();
}
}
๋ค๋ฅธ ๋ฐฉ๋ฒ
import java.io.*;
import java.util.*;
public class Main {
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 (!Character.isLetter(c)) {
sb.append(c);
continue;
}
int n = (int)c + 13;
//๋๋ฌธ์์ผ ๋ 90๋ณด๋ค ํฌ๋ฉด 26 ๋นผ๊ธฐ
if (Character.isUpperCase(c) && n > 90) {
n -= 26; }
//์๋ฌธ์์ผ ๋ 122๋ณด๋ค ํฌ๋ฉด 26 ๋นผ๊ธฐ
if (Character.isLowerCase(c) && n > 122) {
n -= 26;
}
sb.append((char)n);
}
System.out.print(sb);
}
}