Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트(JavaScript)로 알고리즘 기반 문자열 암호화 구현하기

문제 정의

문자열을 입력받아 아래 알고리즘에 따라 암호화된 결과를 반환하는 자바스크립트 함수를 작성해야 합니다.

  • 입력 문자열은 공백으로 구분된 단어들로만 이루어져 있습니다.
  • 각 단어는 다음 규칙에 따라 암호화합니다.
    • 첫 번째 글자는 해당 문자의 ASCII 코드 값으로 변환합니다.
    • 두 번째 글자는 마지막 글자와 서로 위치를 바꿉니다.

예를 들어 이 규칙을 적용하면 문자열 'good''103doo'로 암호화됩니다. 첫 글자 'g'의 ASCII 코드가 103이고, 두 번째 글자 'o'와 마지막 글자 'd'가 서로 뒤바뀌어 'doo'가 되기 때문입니다.

구현 예시

다음은 위 규칙을 그대로 구현한 코드입니다.

const str = 'good';

const encryptString = (str = '') => {
  const [first, second] = str.split('');
  const last = str[str.length - 1];
  let res = '';
  res += first.charCodeAt(0);
  res += last;
  for (let i = 2; i < str.length - 1; i++) {
    const el = str[i];
    res += el;
  }
  res += second;
  return res;
};

console.log(encryptString(str));

코드 동작 원리

코드가 어떤 순서로 작동하는지 단계별로 살펴보겠습니다.

  1. 문자 분해: split('')으로 문자열을 개별 문자 배열로 만든 뒤, 구조 분해 할당을 통해 첫 번째 문자(first)와 두 번째 문자(second)를 추출합니다.
  2. 마지막 문자 추출: str[str.length - 1]로 마지막 문자(last)를 가져옵니다.
  3. ASCII 코드 변환: first.charCodeAt(0)으로 첫 글자의 ASCII 코드 값을 결과 문자열 맨 앞에 추가합니다.
  4. 위치 교환: 원래 마지막에 있던 문자를 두 번째 자리에, 원래 두 번째였던 문자는 마지막 자리에 배치합니다.
  5. 중간 문자 유지: 인덱스 2부터 length-2까지의 중간 문자들은 반복문을 통해 순서대로 그대로 추가합니다.

출력 결과

103doo