끄적끄적 코딩일지

[Programmers]시저암호(난이도:★★★★) 본문

알고리즘

[Programmers]시저암호(난이도:★★★★)

BaekGyuHyeon 2022. 5. 16. 20:07

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

 

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

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

programmers.co.kr

class Solution {
    public String solution(String s, int n) {
        return solutionA(s,n);
    }
    public String solutionA(String s,int n){
        char[] arry = s.toCharArray();
        // ascii code 사용
        for(int i =0 ; i < arry.length;i++){
            if(arry[i] != ' '){
                if(arry[i] < 97 && arry[i] + n > 96){
                    arry[i] -=(26-n);
                }else
                   arry[i] += n;     
                if((arry[i] > 90 && arry[i] < 97) || arry[i] > 122){
                    arry[i] -= 26;
                }
            }
        }
        return new String(arry);
    }
}