알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식
s는 알파벳 소문자, 대문자, 공백으로 이루어진 8000이하의 문자
n은 1이상, 25이하인 자연수
s | n | return |
---|---|---|
"AB" | 1 | "BC" |
"z" | 1 | "a" |
"a B z" | 4 | "e F d" |
function solution(s, n) {
let answer = '';
for(let i=0, max=s.length; i<max; i++){
let code = s.charCodeAt(i),
move = code + (n%26);
if( code === 32 ) answer += ' ';
if( code >= 65 && code <= 90 ){
move > 90 ? answer += String.fromCharCode( move - 26 ) : answer += String.fromCharCode( move );
}
if( code >= 97 && code <= 122){
move > 122 ? answer += String.fromCharCode( move - 26 ) : answer += String.fromCharCode( move );
}
}
return answer;
}
유니코드 번호에 n을 더한 값을 문자열로 변환하여 answer에 대입
🤍 charCodeAt(index)
index에 해당하는 문자의 유니 코드값을 반환
var str = "HELLO WORLD";
var n = str.charCodeAt(0);
console.log(n) // "H"에 대한 유니코드 값 반환
🤍 fromCharCode()
유니코드 값을 문자열로 반환
var res = String.fromCharCode(65);
console.log(res); // A
🤍 아스키코드 ASCII
128개의 문자조합을 제공하는 7비트 부호
각 나라별 언어를 표현할 수 없어 이를 해결한 코드가 유니코드
🤍 유니코드 Unicode
각 나라별 언어를 모두 표현하기 위해 나온 코드 체계