프로그래머스 시저암호

박재훈·2023년 2월 10일
0

알고리즘

목록 보기
9/13

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

내가 푼 방법 : 각 문자는 고유한 아스키코드를 가지기 때문에 이를 활용했다.

참고 : 이미지

function solution(s, n) {
    var str = s.split("")
    var answer = []
    for (let i=0;i<str.length;i++){
        if (str[i] == ' ') answer.push(' ') ;
        else { 
        
        let el = s.charCodeAt(i)
        if(el >= 65 && el <= 90){
            if(el+n >= 91){
                answer.push((el+n-26))
            }else{
                answer.push((el+n))
            }
        }else if(el >= 97 && el <= 122){
            el + n > 122 ? 
                answer.push((el+n-26)) : answer.push((el + n))
           }
        }
        let new = answer.map(v => String.fromCharCode(v))
    }
    return new;
}

아스키코드를 활용한 가장 큰 장점은 z의 값인 90 또는 대문자 Z의 값인 122 를 넘어가면 그냥 26을 빼주면 된다는 것이다. 그리고 공백에대한 예외처리도 까먹지말자.

profile
신입 개발자

0개의 댓글