๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/4446)
< ROT13 >
๋ฌธ์ ํ์ด
[a, i, y, e, o, u] ๊ฐ ์์น์์ 3๋ฒ์งธ ์ค๋ฅธ์ชฝ ์์น์ ์๋ ๋ชจ์์ผ๋ก ๋ฐ๊พธ๊ธฐ
[b, k, x, z, n, h, d, c, w, g, p, v, j, q, t, s, r, l, m, f] ๊ฐ ์์น์์ 10๋ฒ์งธ ์ค๋ฅธ์ชฝ ์์น์ ์๋ ์์์ผ๋ก ๋ฐ๊พธ๊ธฐ
* ์ฌ์ดํด์ด๋ผ์ ๋ง์ง๋ง๊ณผ ์ฒซ ์์น๋ ์๋ก ๋ถ์ด์๋ ๊ฒ์ด๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.InputStreamReader;
public class _4446_ { // ROT13
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = "";
Character v[] = { 'a', 'i', 'y', 'e', 'o', 'u' };
Character c[] = { 'b', 'k', 'x', 'z', 'n', 'h', 'd', 'c', 'w', 'g', 'p', 'v', 'j', 'q', 't', 's', 'r', 'l', 'm',
'f' };
while ((str = bf.readLine()) != null) {
String result = "";
for (int i = 0; i < str.length(); i++) {
if (!Character.isAlphabetic(str.charAt(i))) {
result += str.charAt(i);
} else {
char x = Character.toLowerCase(str.charAt(i));
int idx = -1;
for (int j = 0; j < v.length; j++) {
if (v[j] == x) {
idx = j + 3;
if (idx >= v.length) {
idx -= v.length;
}
x = v[idx];
break;
}
}
if (idx == -1) {
for (int j = 0; j < c.length; j++) {
if (c[j] == x) {
idx = j + 10;
if (idx >= c.length) {
idx -= c.length;
}
x = c[idx];
break;
}
}
}
if (Character.isUpperCase(str.charAt(i))) {
result += Character.toUpperCase(x);
} else {
result += x;
}
}
}
bw.write(result + "\n");
}
bw.flush();
}
}
๋ณ์)
str : ์ ๋ ฅ ๋ฌธ์ฅ
v, c : ๋ชจ์, ์์ ๋ฐฐ์ด
result : ROT13์ ์์ด๋ก ๋ฐ๊พผ ๋ฌธ์ฅ
idx : ์ธ๋ฑ์ค
์ ๋ ฅ์ด ์์ ๋๊น์ง ๋ฌธ์ฅ์ ์ ๋ ฅ๋ฐ์ผ๋ฉฐ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) ๋ฌธ์ฅ์ ์ดํด๋ณด๋ฉฐ ์ํ๋ฒณ์ด ์๋๋ผ๋ฉด ๊ทธ๋๋ก ์ถ๋ ฅํ๋ค.
2) ์ํ๋ฒณ์ด๋ผ๋ฉด ๋ชจ์์ธ์ง ์์์ธ์ง ํ์ธํ๋ค. ๋ชจ์์ด๋ผ๋ฉด ํ์ฌ ์์น์์ ์ค๋ฅธ์ชฝ์ผ๋ก 3๋ฒ์งธ ์๋ ๋ชจ์์ผ๋ก ๋ฐ๊พธ๊ณ , ์์์ด๋ผ๋ฉด ํ์ฌ ์์น์์ ์ค๋ฅธ์ชฝ์ผ๋ก 10๋ฒ์งธ ์๋ ์์์ผ๋ก ๋ฐ๊พผ๋ค.
3) ์๋ ๋ฌธ์์ ๋์๋ฌธ์ ์ฌ๋ถ์ ๋ง๊ฒ ์ ์งํด์ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 10469_์ฌ์ด ๋์ ์ฌ์๋ค (0) | 2025.02.21 |
---|---|
[Baekjoon] 3230_๊ธ๋ฉ๋ฌ, ์๋ฉ๋ฌ, ๋๋ฉ๋ฌ์ ๋๊ฐ? (1) | 2025.02.20 |
[Baekjoon] 15235_Olympiad Pizza (1) | 2025.02.18 |
[Baekjoon] 13567_๋ก๋ด (0) | 2025.02.17 |
[Baekjoon] 15044_Fase (0) | 2025.02.14 |