[Algorithm #06] 11655 - ROT13 (C++)

이석환·2023년 4월 11일

Algorithm

목록 보기
7/16

문제 설명

  1. 문자열을 입력받는다.
  2. 입력받은 문자열을 숫자를 제외하고 특정 규칙에 맞게 암호화
  3. 암호화된 문자열을 출력


출처 : https://www.acmicpc.net/problem/11655

문제 해결 전략

  1. string으로 입력받은 문자열은 인덱싱이 된다는 걸 이용
  2. 문자열의 길이만큼 (size() 함수 이용) 아스키코드 값을 이용하여 13을 더하거나 빼서 저장
  3. 대문자와 소문자의 구분을 분기문을 사용하여 구현
#include <iostream>

using namespace std;

int main(void) {
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    string s;
    getline(cin, s);

    for (int i = 0; i < s.size(); i++) {
        if (65 <= s[i] && s[i] < 78)
            s[i] = s[i] + 13;
        else if (78 <= s[i] && s[i] < 91)
            s[i] = s[i] - 13;
        else if (97 <= s[i] && s[i] < 110)
            s[i] = s[i] + 13;
        else if (110 <= s[i] && s[i] < 123)
            s[i] = s[i] - 13;
        else
            continue;
    }
    cout << s << "\n";
}

소감

문자열과 아스키코드를 이용하여 쉽게 구현이 가능한 문제
초반은 너무 쉽다.

profile
반갑습니다.

0개의 댓글