반응형
https://www.acmicpc.net/problem/11655
11655번: ROT13
첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다.
www.acmicpc.net
코드
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
getline(cin, str);
for (int i = 0; i < str.length(); i++)
{
if ((str[i] >= 78 && str[i] <= 90) || (str[i] >= 110 && str[i] <= 122))
str[i] -= 13;
else if ((str[i] >= 65 && str[i] <= 77) || (str[i] >= 97 && str[i] <= 109))
str[i] = (str[i] + 26) - 13;
cout << str[i];
}
return 0;
}
풀이
알파벳과 숫자로만 이루어진 문자열을 입력받았을 때 ROT13의 암호화 방식을 사용해 암호화한 후 그 결과를 출력하는 문제이다.
ROT13 암호화는 알파벳에만 해당하고 숫자와 공백은 그대로 지나친다.
알파벳에만 해당하기 때문에 다른 문자가 나오지 않도록 범위를 조건으로 하여 계산하였다.
반응형
'문제 해결 > BaekJoon' 카테고리의 다른 글
[백준] [C++] 5597번 과제 안 내신 분..? (0) | 2023.01.27 |
---|---|
[백준] [C++] 11718번 그대로 출력하기 (0) | 2023.01.20 |
[백준] [C++] 11170번 0의 개수 (0) | 2023.01.19 |
[백준] [C++] 11365번 !밀비 급일 (0) | 2023.01.19 |
[백준] [C++] 9086번 문자열 (0) | 2023.01.19 |