알고리즘 모음(C++)

백준 11655 - ROTC13(C++) 본문

백준

백준 11655 - ROTC13(C++)

공대생의 잡다한 사전 2023. 6. 1. 20:57

문제 링크입니다. https://www.acmicpc.net/problem/11655

 

11655번: ROT13

첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다.

www.acmicpc.net

ROTC13이란 x번째 문자에서 13을 더한 알파벳으로 바꾸는 문제입니다.

 

B는 13을 미루면 O가 됩니다.

하지만 O는 13을 미루면 알파벳이 아니게 됨으로 26의 값을 빼서 알파벳으로 바꿔줘야 합니다. 그러면 B가 나옵니다.

 

자세한 것은 코드를 참고해주세요.

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <cstring>
#include <cmath>

using namespace std;

char arr[101];
string ans;

int main(){
    cin.tie(0);
    cout.tie(0);
    cin.getline(arr, 101);
    for(int i = 0; i < strlen(arr); i++){
        if(arr[i] >= 'A' && arr[i] <= 'Z'){
            arr[i] += 13;
            if(arr[i] >= 'A' && arr[i] <= 'Z') ans += arr[i];
            else ans += (arr[i] - 26);
        }
        else if(arr[i] >= 'a' && arr[i] <= 'z'){
            arr[i] += 13;
            if(arr[i] >= 'a' && arr[i] <= 'z') ans += arr[i];
            else ans += (arr[i] - 26);
        }
        else ans += arr[i];
    }
    cout << ans;
    return 0;
}

 

 

질문 및 조언은 댓글을 남겨주세요