어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요.
생각한 풀이
1. 대,소문자를 구분해서 StringBuilder에 추가해야겠다
2. n만큼 넘어가면 알파벳 26자리를 순환하게 만들어야겠다
class Solution {
public String solution(String s, int n) {
String answer = "";
StringBuilder sb = new StringBuilder();
for(int i=0;i<s.length();i++){
if(s.charAt(i)==' '){
sb.append(' ');
}else if(Character.isUpperCase(s.charAt(i))){
sb.append((char)('A'+(s.charAt(i)-'A'+n)%26));
}else if(Character.isLowerCase(s.charAt(i))){
sb.append((char)('a'+(s.charAt(i)-'a'+n)%26));
}
}
return sb.toString();
}
}
🐴 풀이
1. for문을 돌면서 s의 길이만큼 문자를 확인한다
2. 공백이 있으면 공백을 append 해준다
3. 대소문자를 isUpperCase,isLowerCase로 구분한다
4. 문자에 n만큼 더하고 이를 26의 나머지로 계산한 다음 만들어진 알파벳을 구하기 위해 'A', 'a'에 값을더하고 char로 만든다
5. StringBuilder를 toString으로 출력한다