[プログラマ]イニシエータパスワード
1416 ワード
シーザーのパスワード
この問題はアスキーコードテーブルを参照して解いた.
に答える
function solution5(str, n) {
let answer = "";
for (let i = 0; i < str.length; i++) {
let asciiCode = str[i].charCodeAt();
console.log(asciiCode);
// 대문자 처리
if (asciiCode >= 65 && asciiCode <= 90) {
let plusNum = asciiCode + n;
if (plusNum > 90) {
// Z를 넘어서면 다시 A로 돌아오도록 -26
answer += String.fromCharCode(plusNum - 26);
} else {
answer += String.fromCharCode(plusNum);
}
// 소문자 처리
} else if (asciiCode >= 97 && asciiCode <= 122) {
let plusNum = asciiCode + n;
if (plusNum > 122) {
// z를 넘어서면 다시 a로 돌아오도록 -26
answer += String.fromCharCode(plusNum - 26);
} else {
answer += String.fromCharCode(plusNum);
}
// 공백 처리
} else if (str[i] === " ") {
answer += " ";
}
}
return answer;
}
console.log(solution5("AB", 1)); // "BC"
console.log(solution5("z", 1)); // "a"
console.log(solution5("a B z", 4)); // "e F d"
function solution5(str, n) {
let answer = "";
for (let i = 0; i < str.length; i++) {
let asciiCode = str[i].charCodeAt();
console.log(asciiCode);
// 대문자 처리
if (asciiCode >= 65 && asciiCode <= 90) {
let plusNum = asciiCode + n;
if (plusNum > 90) {
// Z를 넘어서면 다시 A로 돌아오도록 -26
answer += String.fromCharCode(plusNum - 26);
} else {
answer += String.fromCharCode(plusNum);
}
// 소문자 처리
} else if (asciiCode >= 97 && asciiCode <= 122) {
let plusNum = asciiCode + n;
if (plusNum > 122) {
// z를 넘어서면 다시 a로 돌아오도록 -26
answer += String.fromCharCode(plusNum - 26);
} else {
answer += String.fromCharCode(plusNum);
}
// 공백 처리
} else if (str[i] === " ") {
answer += " ";
}
}
return answer;
}
console.log(solution5("AB", 1)); // "BC"
console.log(solution5("z", 1)); // "a"
console.log(solution5("a B z", 4)); // "e F d"
Reference
この問題について([プログラマ]イニシエータパスワード), 我々は、より多くの情報をここで見つけました https://velog.io/@elena_park/프로그래머스-시저-암호テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol