# [Algorithm/JS] 백준 11654번 아스키 코드

🔗 문제 바로가기 (opens new window)

# Question

알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.

# Input

알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다.

# Output

입력으로 주어진 글자의 아스키 코드 값을 출력한다

# Example

# Input 1

A
1

# Output 1

65
1

# Input 2

9
1

# Output 2

57
1

이 외의 입출력은 상단의 문제 바로가기 링크에서 확인

# Solution

# 나의 풀이

const input = require('fs').readFileSync('dev/stdin').toString().trim();

let ASCII = 0;
const alpha_low = 'abcdefghijklmnopqrstuvwxyz';
const alpha_upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
const number = '0123456789';

if (alpha_low.includes(input)) ASCII = 97 + alpha_low.indexOf(input);
else if (alpha_upper.includes(input)) ASCII = 65 + alpha_upper.indexOf(input);
else ASCII = 48 + number.indexOf(input);

console.log(ASCII);
1
2
3
4
5
6
7
8
9
10
11
12

나는 이 문제가 문자열 알고리즘 문제이기 때문에 문자열을 활용하여 풀어야한다고 생각했다. 대소문자 알파벳과 숫자를 문자열로 담은 변수를 각각 선언하고, 입력받은 값을 찾아 아스키코드 값을 출력하도록 작성했고, 제출 결과는 성공적이었다.

# 다른 풀이

const input = require('fs').readFileSync('dev/stdin').toString().trim();
console.log(input.charCodeAt(0));
1
2

다른 이들의 풀이를 보고 머리가 띵했다. 바로 아스키코드를 반환하는 charCodeAt라는 문자열 메소드가 존재했던 것이다. 지금까지 공부하면서 이런 메소드가 있는지 몰랐고, 나의 무지함에 충격을 받았던 것. 충격과 별개로 새로운 지식이 쌓였다!

Last Updated: 2022. 6. 5. 오후 3:42:39