아스키코드를 변환하는 문제이다.
정규식밖에 안떠올라서 복잡하게 생각했는데
입력을 뜯어보면 간단한 문제였다.
참고링크 1 : 입력 뜯어보기
참고링크 2 : 아스키 코드
나는 입력을 보고 아 정규식을 활용해서 풀면 되겠군. 이라고 생각했는데
어떻게 나눠야하지? 라는 생각에 어려웠다.
첫 문제부터 이렇게 어려울리 없다. 다시 생각을 해보자
Scanner sc = new Scanner(System.in);
int n = sc.next().charAt(0);
System.out.println(n);
Scanner는 nextInt()는 정수, next()나 nextLine()을 사용하면 String형을 받는다.
그리고 charAt(0)을 사용해 char형으로 문자열을 잘라 변환한 다음 int타입 변수에 저장을 한다.
이렇게 하면 문자에 대응되는 값 -> 아스키 코드로 변환이 된다
또한 BufferedReader로 푸는 방법도 있다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = br.read();
System.out.println(n);
BufferedReader의 read()는 입력받은 값을 모두 아스키코드로 받는다
참고로 예외처리를 해주어야한다.
public static void main(String[] args) throws IOException {
BufferedReader로 풀었을 때 시간이 훨씬 많이 단축이 되는 것을 볼 수 있다
Scanner는 간편하지만 내부에서 정규식을 돌기 때문에 시간이 오래 걸린다
참고 링크로 걸어둔 입력 뜯어보기가 입력에 대한 이해도를 높여준다
꼭 참고하자!