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

hhkim·2023년 6월 25일
0

Algorithm - JavaScript

목록 보기
36/188
post-thumbnail

풀이 과정

  1. 알파벳 문자열 만들기: ABCD..Z
  2. 주어진 문자열을 배열로 만들고 각 문자에 대해 반복: map()
  3. 각 문자의 인덱스 찾기: indexOf()
    이때 대소문자 구분
  4. 인덱스가 -1이면 그대로 반환
  5. 인덱스가 있으면 n만큼 뒤에 있는 문자 반환
    이때 대소문자 구분
  6. 다시 문자열로 만들기: join()

코드

function solution(s, n) {
  const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  const len = alphabet.length;
  return [...s]
    .map((c) => {
      const upper = c.toUpperCase();
      const i = alphabet.indexOf(upper);
      if (i === -1) return c;
      const changed = alphabet[(i + n) % alphabet.length];
      return c === upper ? changed : changed.toLowerCase();
    })
    .join('');
}

0개의 댓글