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을 빼주면 된다는 것이다. 그리고 공백에대한 예외처리도 까먹지말자.