[프로그래머스] 시저 암호

ElenaPark·2021년 3월 3일
0

알고리즘

목록 보기
17/37
post-thumbnail

시저 암호

이 문제는 아스키코드표를 참고하여 풀었다.

풀이


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"
  • fromCharCode()는 String의 정적 메서드이기 때문에 String.fromCharCode()의 형식으로 사용해야 한다.
profile
Front-end 개발자입니다.

0개의 댓글