관리 메뉴

cococo-coding

11655번. ROT 13 (c++풀이) 본문

[BOJ] 코드 모음/C++_learning 문제집

11655번. ROT 13 (c++풀이)

_dani 2023. 12. 7. 04:05

최종코드

#include <iostream>
#include <string>
using namespace std;

int main() {
    //1. 문자열을 입력받는다.
    //2. 문자열 중 알파벳을 rot13으로 암호화한다.
    //3. 암호화한 내용을 출력한다.

    //1
    string s;
    getline(cin, s); //공백포함

    //2
    int len=s.length();
    for(int i=0; i<len; i++){ 
        //알파벳인 경우
        if(s[i]>= 65 && s[i]<=77) //1) 대문자인 경우
            s[i]=s[i]+13;
        else if(s[i]>= 78 && s[i]<=90)
            s[i]=s[i]-13;
        else if(s[i]>=97 && s[i]<=109) //2)소문자인 경우
            s[i]=s[i]+13;
        else if(s[i]>=110 && s[i]<=122)
            s[i]=s[i]-13;
        else continue;
    }

    //3
    cout << s << endl;
    return 0;
}

 

ROT13 이란?

출처: 위키백과

위 그림과 같이 서로 대치되는 암호화 방식이다. 

코드를 짤 때, 대문자/소문자로 나누고, 각각을 전반부/후반부 ex(A~M/N~Z) 로 나누어서 짜면 쉽게 풀린다. 

 

2023.12.07