암호화된 문자열과 암호화 키를 입력받아 복호화된 문자열을 리턴해야 합니다.카이사르 암호(Caesar cipher)는 평문(plaintext)을 암호키 secret
개만큼 (오른쪽으로) 평행이동시켜 암호화 합니다. 복호화는 암호화된 문자열을 원래의 평문으로 복원하는 것을 말합니다.
'hello'를 secret 3으로 암호화한 경우: 'khoor'
'codestates'를 secret 11로 암호화한 경우: 'nzopdelepd'
입력
인자 1 : str
string
타입의 알파벳 소문자 문자열인자 2 : secret
number
타입의 암호화 키출력
string
타입을 리턴해야 합니다.주의 사항
let output = decryptCaesarCipher('khoor', 3);
console.log(output); // --> hello
output = decryptCaesarCipher('zruog', 3);
console.log(output); // --> world
function decryptCaesarCipher(str, secret) {
// TODO: 여기에 코드를 작성합니다.
if (str === "") return "";
let arr = str.split("").map((ch) => ch.charCodeAt());
let newArr = [];
const blank = " ".charCodeAt();
for (let i = 0; i < arr.length; i++) {
if (97 <= arr[i] && arr[i] <= 122 && arr[i] - secret < 97) newArr[i] = 123 - (secret - (arr[i] - 97));
else if (65 <= arr[i] && arr[i] <= 90 && arr[i] - secret < 65) newArr[i] = 91 - (secret - (arr[i] - 65));
else if (arr[i] === blank) newArr[i] = blank;
else newArr[i] = arr[i] - secret;
}
return newArr.map((ch) => String.fromCharCode(ch)).join("");
}