
코드
function solution(str, shiftNumber) {
let shift = shiftNumber % 26;
let resultArr = [];
let unicodeArr = [];
for (let i = 0; i < str.length; i++) {
const unicode = str[i].charCodeAt(0);
let a = 0;
if (/[A-Z]/.test(str[i])) {
if (unicode + shift > 90) a = 26;
unicodeArr.push(unicode + shift - a);
} else if (/[a-z]/.test(str[i])) {
if (unicode + shift > 122) a = 26;
unicodeArr.push(unicode + shift - a);
} else unicodeArr.push(unicode);
}
unicodeArr.forEach((ele) => resultArr.push(String.fromCharCode(ele)));
return resultArr.join("");
}
예전에 시저 암호 만들어 놓은게 있어서 그대로 가져다썼다
그런데 해당 문제에서는 n이 25이하라고 했으므로
알파벳 배열을 만들어 놓고 사용하는편이 더 빠르겠다
'코딩 테스트 > 프로그래머스 level1' 카테고리의 다른 글
| 자연수 뒤집어 배열로 만들기 (0) | 2022.09.07 |
|---|---|
| 문자열 내 p와 y의 개수 (0) | 2022.09.07 |
| 서울에서 김서방 찾기 (0) | 2022.09.07 |
| 약수의 개수와 덧셈 (0) | 2022.09.06 |
| 가운데 글자 가져오기 (0) | 2022.09.06 |