이 글에서는 0부터 25 사이(양 끝값 포함)의 숫자를 입력받아 해당 순서의 알파벳 문자를 반환하는 자바스크립트 함수를 작성하는 방법을 소개합니다.
문제 정의
함수는 0~25 범위의 숫자 하나를 인수로 받으며, 각 숫자는 다음과 같이 알파벳에 대응됩니다.
- 0 → A
- 1 → B
- 15 → P
- 25 → Z
구현 예시
핵심 아이디어는 대문자 A의 아스키(ASCII) 코드 값을 기준점으로 삼고, 여기에 입력받은 숫자를 더한 후 String.fromCharCode() 메서드를 사용해 다시 문자로 변환하는 것입니다.
const num = 15;
const indexToAlpha = (num = 1) => {
// 첫 번째 문자 'A'의 ASCII 값
const A = 'A'.charCodeAt(0);
let numberToCharacter = number => {
return String.fromCharCode(A + number);
};
return numberToCharacter(num);
};
console.log(indexToAlpha(num));
실행 결과
콘솔에는 다음과 같이 출력됩니다.
P
동작 원리 설명
'A'.charCodeAt(0)은 문자 A의 유니코드 코드 값인 65를 반환합니다. 여기에 입력값 15를 더하면 80이 되며, 이는 대문자 P에 해당하는 코드입니다. 따라서 String.fromCharCode(80)은 문자 'P'를 반환하게 됩니다.
이처럼 charCodeAt()과 fromCharCode()의 관계를 활용하면 별도의 매핑 배열 없이도 숫자-알파벳 변환을 간결하고 효율적으로 처리할 수 있으며, 스프레드시트 열 이름 생성이나 알파벳 인덱싱 문제에서 널리 사용되는 패턴입니다.