728x90
* ๋ฌธ์
์ฃผ์ด์ง ๋ฌธ์์ด์ ROT13 ์ผ๋ก ์ํธํํ ๋ด์ฉ์ ์ถ๋ ฅํ๋ฉด ๋๋ ๋ฌธ์ ์ด๋ค.
* ๋ฌธ์ ํ์ด
ROT13์ ์ํ๋ฒณ์ 13๊ธ์์ฉ ๋ฐ์ด์ ๋ง๋๋ฏ๋ก ASCII ์ฝ๋๋ก ํํ๋ ์ํ๋ฒณ ์ซ์์ 13์ ๋ํด์ ๋ค์ ๋ฌธ์์ด๋ก ์ถ๋ ฅํ๋ฉด ๋๋ค.
์ด ๋, z(Z) ๊ฐ์ด ๋์ด๊ฐ ๋๋ ๋ค์ a(A) ๊ฐ๋ถํฐ ์นด์ดํธํด์ค์ผ ํ๋ค. ROT13์ ์ํ๋ฒณ ๊ฐ์์ธ 26์ ์ ํํ ๋ฐ์ด๊ธฐ ๋๋ฌธ์ ๋จ์ํ ์ํ๋ฒณ + 13 ๊ฐ์์ 26์ ๋นผ์ฃผ๋ฉด ๋๋ค.
* ์์๋ ๊ฒ
1) ASCII ์ฝ๋
2) int to string
to_string(97);
3) int to char
์์์ , ๋ช ์์ ๋ณํ์ด ๊ฐ๋ฅํจ.
์์์ ๋ณํ์ ๊ทธ๋ฅ char ch = 97; ํ๋ฉด ๋๊ณ
๋ช ์์ ๋ณํ์ (char)97; ์ด๋ฌ๋ฉด ๋๋ค.
4) char to int
int a = (int)'a';
* ์ฝ๋
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
const int SCREAT_NUM = 13;
const int ALPHABET_NUM = 26;
const int a = (int)'a';
const int z = (int)'z';
const int A = (int)'A';
const int Z = (int)'Z';
string str = "";
getline(cin, str);
for (int i = 0; i < str.size(); i++) {
//์๋ฌธ์
if (str[i] >= a && str[i] <= z) {
if (str[i] + SCREAT_NUM > z) {
str[i] = (str[i] + SCREAT_NUM) - ALPHABET_NUM;
}
else {
str[i] += SCREAT_NUM;
}
}
//๋๋ฌธ์
if(str[i] >= A && str[i] <= Z){
if (str[i] + SCREAT_NUM > Z) {
str[i] = (str[i] + SCREAT_NUM) - ALPHABET_NUM;
}
else {
str[i] += SCREAT_NUM;
}
}
}
cout << str << "\n";
}
728x90
'๐ Coding Test Study > Algorithm Problem' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++][Baekjoon][๋ฌธ์์ด] 2559 ์์ด (feat. prefix sum) (0) | 2024.04.13 |
---|---|
[C++][Baekjoon][๋ฌธ์์ด] 9996๋ฒ ํ๊ตญ์ด ๊ทธ๋ฆฌ์ธ ๋ ์๋ฒ์ ์ ์ํ์ง (1) | 2024.03.31 |
[C++][Baekjoon][๋ฌธ์์ด] 10808๋ฒ ์ํ๋ฒณ ๊ฐ์ (1) | 2024.02.03 |
[C++][Goorm][ํ์] ์นด๋ ๊ตํํ๊ธฐ (0) | 2023.06.11 |
[C++][Goorm][์ ๋ ฌ] ๋จ์ด์ฅ ๋ง๋ค๊ธฐ (1) | 2023.06.08 |