문제
알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.
입력
- 알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다.
출력
- 입력으로 주어진 글자의 아스키 코드 값을 출력한다.
입출력 예
input | output |
A | 65 |
z | 122 |
내가 작성한 답안
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim();
console.log(input.charCodeAt());
아스키코드란?
아스키(ASCII)란 미국 국립 표준 협회에서 표준화한 정보 교환용 7비트 부호 체계로, 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 문자 인코딩은 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것을 말한다.
아스키코드 문자표
문제의 입출력 예와 같이 10진법의 65는 대문자 A, 10진법의 122는 소문자 z를 나타낸다.
문자 → 아스키코드 변환하기
String.prototype.charCodeAt()
✨ String.charCodeAt(index)
주어진 index에 해당하는 문자의 유니코드 값을 리턴한다.
매개변수
- index
👉 0 이상이고 문자열의 길이보다 작은 정수
👉 숫자가 아니라면 0을 기본값으로 사용
반환값
- 주어진 인덱스에 대한 문자의 유니코드 값 리턴
- 유니코드 숫자 범위 밖을 넘어갔을 경우 NaN 리턴
예시
문자열이 2개 이상이어도 index값을 지정하지 않는다면 기본값인 0번째 인덱스만 아스키로 변환한다. 따라서 대문자 A에 대한 아스키코드인 65만 출력한다.
Apple 문자열의 4번째 인덱스값(input[4])인 e의 아스키 코드를 출력하고 싶다면 위와 같이 index값에 해당 문자의 인덱스값을 지정해 주면 된다.
아스키코드 → 문자 변환하기
String.fromCharCode()
✨ String.fromCharCode(num1[, ...[, numN]])
주어진 유니코드에 해당하는 문자열을 리턴한다.
매개변수
- num1, ..., numN
👉 지정할 유니코드 숫자
👉 가능한 값의 범위는 0부터 65535(0xFFF)까지로, 초과하는 범위는 잘림
반환값
- 주어진 유니코드 N개로 이루어진 문자열
- String 객체가 아닌 문자열 반환
예시
아스키코드 65, 66, 67을 각각 변환하여 하나의 문자열 'ABC'를 반환한다.
[참고 자료]
https://www.acmicpc.net/problem/11654
https://ko.wikipedia.org/wiki/ASCII
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode
'Front-End > Algorithm' 카테고리의 다른 글
[프로그래머스 / JavaScript] Lv.1 완주하지 못한 선수 (ft. js의 Map 알아보기) (0) | 2023.08.15 |
---|---|
[프로그래머스 / JavaScript] Lv.0 팩토리얼 (0) | 2023.07.27 |
[프로그래머스 / JavaScript] Lv.1 약수의 개수와 덧셈 (0) | 2023.07.25 |
[프로그래머스 / JavaScript] Lv.0 배열의 원소만큼 추가하기 (0) | 2023.07.24 |
[프로그래머스 / JavaScript] Lv.1 숫자 문자열과 영단어 (0) | 2023.04.20 |