스터디/알고리즘

[백준 11655] ROT13

덩이 2022. 6. 21. 12:38
#include <bits/stdc++.h>
using namespace std;
string str;
int main(){
    getline(cin, str);
    for(int i=0; i<str.size(); i++){

    if(str[i]>=65 && str[i] < 97){
        if(str[i]+13 > 90
        )
            str[i] = str[i]+13-26;
        else
            str[i] += 13;
    }
    else if(str[i]>= 97 && str[i] <= 122){
        if(str[i]+13 > 122)
            str[i] = str[i]+13-26;
        else
            str[i] +=13;
    }
    cout << str[i];
    }
    return 0;
}

생각보다 쉬웠던 문제인데

대소문자 구분해서 판별해야하고 z, Z 이후에 다시 처음으로 돌아가야하는 것을 고려해야한다

그래서 +13-266 을 통해 또 다시 돌아갈 수 있게끔 구현하였다