
E(x)=(x+n)mod26
class Solution {
public String solution(String s, int n) {
StringBuilder answer = new StringBuilder();
for(int i=0; i<s.length(); i++){
char read = s.charAt(i);
if(Character.isUpperCase(read)){
answer.append((char) ((read - 'A' + n) % 26 + 'A'));
} else if(Character.isLowerCase(read)){
answer.append((char) ((read - 'a' + n) % 26 + 'a'));
} else {
answer.append(read);
}
}
return answer.toString();
}
}
문자 - 'A' : A에서 문자가 얼마나 떨어져있는지 계산
문자 - 'A' + n : 이동하는 위치를 계산
(문자 - 'A' + n) % 26 : 값이 0~25사이로 나오게 계산
(문자 - 'A' + n) % 26 + 'A' : A에서 n만큼 떨어진 위치에 있는 알파벳