[JavaScript] ASCII 코드 / [프로그래머스 1단계] 시저 암호

호이·2022년 6월 7일
0

ASCII Code (아스키코드)

  • American Standard Code for Information Interchange 의 약자이다.
  • 각각의 비트가 유일한 char를 대표하는 총 7비트 char 128개의 집합이다.

구성

  • A는 65, Z는 90, a는 97, z는 122 이다. 대문자가 먼저이고 소문자가 다음에 온다.
  • 아스키코드로 65 ~ 90번은 알파벳 대문자이고,
  • 91부터 96번까지 6개의 특수문자가 온 뒤
  • 97번부터 122번까지 알파벳 소문자를 나타낸다.

자바스크립트 내장 메서드

  • 문자를 아스키코드로 변환: "apple".charCodeAt(0)
  • 아스키코드를 문자로 변환: String.fromCharCode(코드번호)

문제

https://programmers.co.kr/learn/courses/30/lessons/12926

  • 프로그래머스 1단계 시저 암호 문제를 풀면서 아스키코드 변환을 공부했다.
  • 시저 암호는 주어진 문자열에서 n만큼 밀어서 만들어진 새로운 문자열로, 이를 반환하는 문제다.

전체 코드

function solution(s, n) {
  return s
    .split("")
    .map(char => {
      if (char === " ") return " "
      return move(char.charCodeAt(0), n)
    })
    .join("")
}

function move(curCode, move) {
  if (curCode <= "Z".charCodeAt(0)) {
    // 대문자인 경우
    return String.fromCharCode(
      "A".charCodeAt(0) + ((curCode + move - "A".charCodeAt(0)) % 26)
    )
  } else {
    // 소문자
    return String.fromCharCode(
      "a".charCodeAt(0) + ((curCode + move - "a".charCodeAt(0)) % 26)
    )
  }
}
profile
매일 부활하는 개복치

0개의 댓글