N

(프로그래머스 c++)시저 암호 본문

프로그래머스 알고리즘/1단계

(프로그래머스 c++)시저 암호

naeunchan 2020. 4. 24. 10:31
728x90
반응형

 

알파벳 문자열을 다루는 문제..!

대소문자를 구분하기 때문에 따로 처리를 해줘야 한다.

또한 해당 알파벳 + n이 'z'나 'Z'를 넘어가게 되면 'a'나 'A'부터 시작해서 나머지 수만큼 밀어주면 된다..!

본인은 나머지 연산을 이용하여 알파벳을 밀어주었다.

나머지 연산을 이용하면 대소문자 구분만 해주면 되기 때문에 간단하게 풀 수 있다..!

#include <string>
#include <vector>
#include <iostream>

using namespace std;

string solution(string s, int n) {
    string answer = "";
    
    for(int i = 0; i < s.size(); i++)
    {
        if(s[i] != ' ')
        {
            if(s[i] >= 'a' && s[i] <= 'z')
                answer += (s[i] - 'a' + n) % 26 + 'a';
            else
                answer += (s[i] - 'A' + n) % 26 + 'A';
        }
        else
            answer += ' ';
    }
    return answer;
}
728x90
반응형