티스토리 뷰

programmers.co.kr/learn/courses/30/lessons/12926

 

코딩테스트 연습 - 시저 암호

어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1만큼 밀면 a가

programmers.co.kr

 

 

 

 

class Solution {
    public String solution(String s, int n) {
        
        StringBuffer sb = new StringBuffer();
        
        for(int i=0; i<s.length(); i++) {
            int res = 0;
            int a = (int)s.charAt(i);
            
            if(s.charAt(i) == ' ') {
                res = 32;
                
            } else {
                // 대문자일 때
                if(Character.isUpperCase(a)) {
                    if((int)s.charAt(i) + n > 90) {
                        res = a + n - 26;
                    }
                    else {
                        res = a + n;
                    }
                }

                // 소문자일 때
                if(Character.isLowerCase(a)) {
                    if(a + n > 122) {
                        res = a + n - 26;
                    }
                    else {
                        res = a + n;
                    }
                }
            }
            
            sb.append((char)res);
        }

        return sb.toString();
    }
}
최근에 올라온 글
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Total
Today
Yesterday