어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾼 결과를 리턴하는 문제이다.

문자열 s와 거리 n을 입력받아, s를 n만큼 민 암호문을 만들어야 한다.

 

문제 자체는 어렵지 않았는데... 대문자->소문자, 소문자->대문자로 변환하는 과정이 어려웠다..

 

#include <string>
#include <vector>

using namespace std;

string solution(string s, int n) {
    string answer = "";
    string temp = "";
    
    for(int i =0; i<s.size(); i++)
    {
        if(s[i] == ' ')
        {
            answer += " ";
        }
        else
        {
            temp = s[i];
            for(int j = 1; j <= n; j++)
            {
            	// 나머지 연산을 사용해서 대문자->소문자, 소문자->대문자 변환
                if(('A' <= s[i]) && (s[i] <= 'Z'))
                {
                    temp = (s[i]-'A'+j)%26 +'A';
                }
                else
                {
                    temp = (s[i]-'a'+j)%26+ 'a';
                }
            }
            answer += temp;
        }
    }
    return answer;
}

+ Recent posts