풀이
- 처음 보는 메소드들 정리
- String.fromCharCode(i) -> 숫자에 해당하는 아스키코드값을 문자열로 추출
- char.charCodeAt(i) -> 숫자에 해당하는 아스키코드값을 문자로 추출
-> 여기서 궁금했던게 왜 문자로 추출 후 다시 문자열로 추출하냐였다 .. 근데 이게 자바에서는
(char) 숫자+숫자 이런식으로 해도 형변환으로 바로 추출할 수 있지만 자바스크립트는 이런 형변환이 존재하지않는다. 해서 두 번의 과정을 거쳐 문자열로 변환해서 문자열을 이었다.
-> 결국 문제는 대문자라면 총 개수인 26을 활용해서 10진수 아스키코드값을 구하고 그걸 문자로 변환해서 문자열을 잇는 것 자바스크립트 메소드 기억하자 😎
function solution(s, n) {
let answer = "";
for (let i = 0; i < s.length; i++) {
let char = s[i];
if (char >= 'A' && char <= 'Z') {
let newChar = String.fromCharCode(((char.charCodeAt(0) - 65 + n) % 26) + 65);
answer += newChar;
} else if (char >= 'a' && char <= 'z') {
let newChar = String.fromCharCode(((char.charCodeAt(0) - 97 + n) % 26) + 97);
answer += newChar;
} else {
answer += char;
}
}
return answer;
}