시저 암호

Seongjin Jo·2023년 2월 20일
0

프로그래머스 LV1

목록 보기
17/31

문제

풀이

class Solution {
    public String solution(String s, int n) {
        String answer = "";
        for(int i=0; i<s.length(); i++){
            char ch = s.charAt(i);
            if(ch==' ') answer += ch;
        
            if(ch>='a' && ch<='z'){
                if(ch + n > 'z') answer += (char)(ch-26+n);
                else answer += (char)(ch+n);
            }
            else if(ch>='A' && ch<='Z'){
                if(ch+n > 'Z') answer+= (char)(ch-26+n);
                else answer += (char)(ch+n);
            }
        }
        return answer;
    }
}

char 문자는 26개의 문자로 이루저져있다. 그렇기 때문에 한 문자가 n 만큼 더 했을때 'z' 나 'Z' 를 넘어가면 안된다. 그래서 26이 넘어가면 26을 빼주고 n을 더해준다.
이 점을 유의해서 문제를 풀면 된다.

0개의 댓글