[백준] 11654 - 아스키 코드 변환
2020. 9. 2. 10:21ㆍ알고리즘/Baekjoon
728x90
#문자열 #아스키 코드
아스키 코드 변환에 대한 개념을 정립할 수 있는 문제. char 문자가 숫자인지 문자인지 판별하는 Character.isDigit 클래스 메서드는 덤.
아스키 코드
7비트로 표현한 정보교환용 부호체계. 총 128개의 부호가 사용된다. 2바이트 이상의 코드를 표현 못하기 때문에 유니코드(UTF-8)가 현재 국제표준 위상을 가지고 있다. Dec 컬럼이 10진수로 나타낸 숫자이고, Char 컬럼이 부호(아스키 코드)이다.
Java에서의 아스키 코드 문자 to 숫자, 숫자 to 문자
1) 숫자 to 문자
백준문제는 Java에서(내가 유일하게 사용하는 언어니까) 어떤 방법으로 아스키 코드를 구현할 수 있는지 묻고 있다. 간단하다. 부호를 찾고 출력하고 싶다면 숫자를 (char) 로 데이터 변환해주면 된다. 예를 들어, 알파벳 a~z를 배열에 입력하고 싶다. 한땀한땀 {'a', 'b', 'c'... , 'z'} 입력하는 방법이 있다. 또한 반복문으로 char 배열 그대로 유지하면서 (char) (i + 97)을 돌려주면 된다. 숫자는 형 변환에 따라 아스키 코드로 자동 컴파일 되며 char 배열엔 a(97)~z(122)가 저장된다. 이 방식은 [백준] 10809 - 알파벳 찾기 문제에서 그대로 사용된다.
2) 반대로 문자 to 숫자
반대로 아스키 코드 부호를 숫자로 나타내려면 어떻게 하면 될까? (int)로 형 변환해주면 된다. 더해줄 것도 없이 앞에 (int) val만 갖다 붙이면 된다. 쉽다.
package personal.week6;
/*
알파벳 소문자, 대문자, 숫자0-9 중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하라
- 입력: 알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다.
- 출력: 글자의 아스키 코드 값을 출력한다.
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Ascii_11654_ex {
static String input;
static char[] chr;
static char arg;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
input = br.readLine();
chr = input.toCharArray();
arg = chr[0];
if(Character.isDigit(arg)) {
System.out.println((int) arg);
} else {
System.out.println((int) arg);
}
}
}
'알고리즘 > Baekjoon' 카테고리의 다른 글
[백준] 2941 - 크로아티아 알파벳 (0) | 2020.09.10 |
---|---|
[백준] 1316 - 그룹 단어 체커 (0) | 2020.09.09 |
[백준] 1065 - 한수 (0) | 2020.09.01 |
[백준] 11399 - ATM (0) | 2020.08.26 |
[백준] 1003 - 피보나치 함수(재도전) (0) | 2020.08.26 |