HeegeePark / Algorithm-Study-Archiving

알고리즘 스터디 아카이빙용
0 stars 0 forks source link

BJ_11655 ROT13 #15

Open HeeSuChoi opened 4 years ago

HeeSuChoi commented 4 years ago
#include <iostream>
#include <cstring>

using namespace std;

int main() {

    char s[100] = { 0 };
    //띄어쓰기 입력 받기 위해서 cin.getline 사용
    cin.getline(s,100);

    int len = strlen(s);

    //ROT13
    for (int i = 0; i < len; i++){
        if (s[i] >= 'A' && s[i] <= 'M')
            s[i] = s[i] + 13;
        else if (s[i] >= 'N' && s[i] <= 'Z')
            s[i] = s[i] - 13;
        else if (s[i] >= 'a' && s[i] <= 'm')
            s[i] = s[i] + 13;
        else if (s[i] >= 'n' && s[i] <= 'z')
            s[i] = s[i] - 13;
        else s[i] = s[i];
    }

    cout << s << '\n';

    //return 0;
}
HeeSuChoi commented 4 years ago

콘솔창에서 디버그할땐 문제 의도대로 잘 출력되는 것 같은데 제출히면 틀렸다고 함;; 백준 답지봤을 때 내 답이랑 함수 만든 것 말고 똑같은 것 같은데 어디가 틀렸는지 다시 확인해야겠음!

HeeSuChoi commented 4 years ago
#include <iostream>
#include <string>

using namespace std;

int main() {

    string s;
    getline(cin, s);

    //ROT13
    for (int i = 0; i < s.size(); i++){
        if (s[i] >= 'A' && s[i] <= 'M')
            s[i] = s[i] + 13;
        else if (s[i] >= 'N' && s[i] <= 'Z')
            s[i] = s[i] - 13;
        else if (s[i] >= 'a' && s[i] <= 'm')
            s[i] = s[i] + 13;
        else if (s[i] >= 'n' && s[i] <= 'z')
            s[i] = s[i] - 13;
        else s[i] = s[i];
    }

    cout << s << '\n';

    //return 0;
}
HeeSuChoi commented 4 years ago
    char s[100] = { 0 };
    cin.getline(s,100);

        string s;
    getline(cin, s);

으로 변경하니까 정답이 나왔다.

HeegeePark commented 4 years ago
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;

int main() {
    string S;
    int rot;
    getline(cin, S);

    for (int i = 0; i < S.length(); i++) {
        if (S[i] > 64 && S[i] < 91) {   // 대문자인 경우
            rot = S[i] + 13;
            if (rot >= 91) rot -= 26;
            S[i] = rot;
        }
        if (S[i] > 96 && S[i] < 123) {  // 소문자인 경우
            rot = S[i] + 13;
            if (rot >= 123) rot -= 26;
            S[i] = rot;
        }
    }

    cout << S << endl;

    //system("pause");
    return 0;
}