https://school.programmers.co.kr/learn/courses/30/lessons/12926
대문자인지 소문자인지 체크, 대문자면 n을 더했을 때 오버가 되는지 체크해서 처리
소문자도 더했을 때 오버가 되는지 체크해서 처리
#include <string>
#include <vector>
using namespace std;
string solution(string s, int n) {
for(int i = 0; i < s.length(); i++)
{
if(s[i] >= 'A' && s[i] <= 'Z')
{
if(s[i] + n > 'Z')
s[i] += (n - ('Z' - 'A' + 1 ));
else
s[i] += n;
}
else if(s[i] >= 'a' && s[i] <='z')
{
if(s[i] + n > 'z')
s[i] += (n - ('z' - 'a' + 1));
else
s[i]+= n;
}
}
return s;
}
#include <string>
#include <vector>
using namespace std;
string solution(string s, int n) {
string answer = "";
for(auto &a: s) {
if(islower(a)) {
if(!islower(a+=n%26))
a-=26;
} else if(isupper(a)) {
if(!isupper(a+=n%26))
a-=26;
}
}
return s;
}
islower과 isupper함수를 사용하였다.