[프로그래머스 | Javascript] 시저 암호

박기영·2022년 9월 12일
0

프로그래머스

목록 보기
19/126

solution

function solution(s, n) {
    let ans = "";
    
    for(let i = 0; i < s.length; i++){
        let original = s[i].charCodeAt();
        
        if(original === 32){
            ans += " "
        } else if(original >= 65 && original <= 90){
            let newASCII = original + n;
            
            if(newASCII > 90){
                newASCII -= 26;
            }
            
            let ASCIIstr = String.fromCharCode(newASCII);
            
            ans += ASCIIstr;
        } else if(original >= 97 && original <= 122){
            let newASCII = original + n;
            
            if(newASCII > 122){
                newASCII -= 26;
            }
            
            let ASCIIstr = String.fromCharCode(newASCII);
            
            ans += ASCIIstr;
        }
    }
    
    return ans;
}

주어진 문자열의 원소들을 아스키 코드 번호로 변환해서 분기 처리를 해줬다.
대문자는 대문자, 소문자는 소문자끼리 순환하므로
각각 90, 122가 넘어가면 알파벳 개수인 26을 빼줘서 처음부터 시작하는 것처럼 만들어줘야한다.

profile
나를 믿는 사람들을, 실망시키지 않도록

0개의 댓글