알고리즘

프로그래머스 - 시저 암호

계양 꿀주먹 2024. 4. 11. 23:24

 


 

class Solution {
    public String solution(String s, int n) {
        StringBuilder sb = new StringBuilder();
        
        for(char c : s.toCharArray()) {     
            if(c >= 'a' && c <= 'z') {
                c = ((char)(c + n) > 'z') ? (char)(c - 26 + n) : (char)(c + n);
                sb.append(c);
            }
            else if(c >= 'A' && c <= 'Z') {
                c = (char)(c + n) > 'Z' ? (char)(c - 26 + n) : (char)(c + n);
                sb.append(c);
            } else {
                sb.append(" ");
            }
        }
        
        return sb.toString();
    }
}

 

소문자, 대문자인지 판별 후 n을 더했을 때 범위를 넘어선다면 알파벳의 길이인 26을 빼서 다시 a, A부터 시작하도록 했습니다.
입력값이 소문자, 대문자, 공백이기 때문에 else 로 공백을 추가해 답을 반환했습니다.