https://www.acmicpc.net/problem/11655
11655번: ROT13
첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다.
www.acmicpc.net
AM 까지는 아스키코드 값에 +13, NZ까지는 -13 해줘서 변환해준다. (영소문자도 똑같이)
코드
//11655
#include <iostream>
#include <string>
using namespace std;
int main(int argc, const char * argv[]) {
string input;
getline(cin,input);
for(int i=0;i<input.length();i++){
if( (input[i] >= 65 && input[i] <= 77 ) ) input[i] = (input[i]) + 13;
else if( input[i] >= 78 && input[i] <= 90) input[i] = input[i] - 13;
else if(input[i] >= 97 && input[i] <= 109) input[i] = input[i] + 13;
else if(input[i] >= 110 && input[i] <= 122) input[i] = input[i] - 13;
}
for(int i=0;i<input.length();i++)cout<< input[i];
return 0;
}
'코딩테스트 연습 > Baekjoon' 카테고리의 다른 글
[Baekjoon] 1212번: 8진수 2진수 (c++) (0) | 2022.03.31 |
---|---|
[Baekjoon] 11656번 : 접미사 배열 (c++) (0) | 2022.03.31 |
[Baekjoon] 11653번 : 소인수 분해 (c++) (0) | 2022.03.31 |
[Baekjoon] 1158번 : 요세푸스 문제 (c++) (0) | 2022.03.31 |
[Baekjoon] 11576번 : Base Conversion (c++) (0) | 2022.03.31 |