프로그래머스 LEVEL 1(시저 암호)

image

  • 사용 언어 : javascript

  • 해결 날짜 : 2022-08-26

  • 해결 방법 :

    • 문자열을 돌며 n만큼 shift했을 때 Z(90), z(122)보다 크다면 26만큼 빼기
  • 회고 : 아스키 코드 없이 string에 할당

  • 코드

    function solution(s, n) {
        var answer = '';
        for (let i = 0; i < s.length; i++) {
            if (s.charAt(i) === ' ') {
                answer += ' ';
                continue;
            }
            let charCode = s.charCodeAt(i);
            if (charCode >= 65 && charCode <= 90) {
                charCode = charCode + n > 90 ? charCode + n - 26 : charCode + n;
                answer += String.fromCharCode(charCode);
            } else {
                charCode = charCode + n > 122 ? charCode + n - 26 : charCode + n;
                answer += String.fromCharCode(charCode); 
            }
        }
        return answer;
    }
    
  • 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges