문제 이름 : 아스키 코드
문제
알파벳 소문자, 대문자, 숫자 0
~ 9
중 하나가 주어졌을 때,
주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.
입력
알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다.
출력
입력으로 주어진 글자의 아스키 코드 값을 출력한다.
예제 입력 1
A
예제 출력 1
65
예제 입력 2
C
예제 출력 2
67
예제 입력 3
0
예제 출력 3
48
예제 입력 4
9
예제 출력 4
57
예제 입력 5
a
예제 출력 5
97
예제 입력 6
z
예제 출력 6
122
이번에는 ASCII CODE 에 대해서 배우는 문제이다.
문자와 관련된 모든 데이터는 아스키 코드 와 관련이 있다.
그것이 1개, 혹은 그 이상의 개수 또한 아스키 코드 와 관련이 무조건 있다.
문자열 이란, 문자 를 나열 한 객체이다.
즉, 대부분의 프로그래밍 언어에서 String
객체는 스스로의 char
배열을 가지고 있다.
flowchart LR
subgraph String ["String - 문자열"]
char1["char[0]"]
char2["char[1]"]
char3["char[2]"]
end
그렇다면, char
즉, Character 유형의 데이터는 무엇일까?
char
유형의 변수는 표면적으로는 하나의 문자 를 지칭하고, 출력할 수 있다.
하지만, (int)(char 유형 변수)
로 쉽게 ASCII CODE 로 변환이 가능하다.
이 때, 아스키 코드는 정수 유형이다.
컴퓨터 화면에는 문자들 이 표현되지만, 컴퓨터는 숫자(이진법) 을 인식한다.
그렇다면, 우리가 사용하는 문자 를 컴퓨터에게 인식시키는 방법이 무엇일까?
바로 ASCII Code 이다.
아스키 코드는 특수문자, 문자, 숫자 등 화면에 표현될 수 있는 문자들을 숫자 로 가지고 있다.
궁금하다면, 직접 아스키 코드
로 검색하면 된다.
한글은 하나의 글자당 2 BYTE 가 부여되는데, 이는 자음과 모음의 결합 때문이다.
한글은 현재 사용될 일이 없지만, 이것 또한 궁금하다면 직접 검색하여 어떻게 컴파일링 되는지 확인해 보면 된다.
바로 우리가 컴퓨터에게 입력하는 모든 문자들은, 일단 숫자로 인식할 수 있는 ASCII CODE 로 변환된다.
아스키 코드 하나당 하나의 문자를 의미하며, 이러한 아스키 코드 문자들이 모여 문자열(String) 을 형성한다.
flowchart LR
subgraph String
subgraph char1
ASCII-CODE-65["ASCII Code 65\n A"]
end
subgraph char2
ASCII-CODE-67["ASCII Code 67\n C"]
end
subgraph char3
ASCII-CODE-97["ASCII Code 97\n a"]
end
end
String
:"ACa"
- 인덱스 1 :
A
- 아스키 코드 65 - 인덱스 2 :
C
- 아스키 코드 67 - 인덱스 3 :
a
- 아스키 코드 97
이쯤되면, 이제 문제에서 원하는 것이 무엇인지 나오게 된다.
단순히 문자를 문자로 인식하려 하지 말고, 하나의 숫자 측면으로 볼 수 있는 시야를 제공해 준 것이다.
우리가 진행해야 할 과정은 이와 같다 :
- 입력을 문자열 로 받게 된다.
- 모든 입력은 길이 1의 문자열 이므로, 문자열의 인덱스 1 을 추출한다.
- 이 때, 추출되는 데이터는
char
변수로 담는다. char
문자 하나는(int)
와 같은 자바 Parsing 방식으로 쉽게 변환이 가능하다.- 변환된
char
은 ASCII CODE 를 의미하므로, 그대로 출력하면 된다.
Answer 1 - 흐름 시각화
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inputData = br.readLine();
char character = inputData.charAt(0);
int ASCII_DATA = (int)character;
System.out.println(ASCII_DATA);
}
}
Answer 2 - 코드 정리
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println((int)br.readLine().charAt(0));
}
}
'백준-단계별로 풀어보기 > 5-문자열' 카테고리의 다른 글
백준 5622 Java - 다이얼 (0) | 2024.09.11 |
---|---|
백준 10809 Java - 알파벳 찾기 (0) | 2024.09.10 |
백준 11720 Java - 숫자의 합 (0) | 2024.09.09 |
백준 27866 Java - 문자와 문자열 (1) | 2024.09.08 |