[백준] 11654번 : 아스키 코드 - JAVA(자바)

Life is ninanino·2022년 10월 25일
0

[백준] JAVA

목록 보기
24/37
post-thumbnail

https://www.acmicpc.net/problem/11654


아스키코드를 변환하는 문제이다.
정규식밖에 안떠올라서 복잡하게 생각했는데
입력을 뜯어보면 간단한 문제였다.

참고링크 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는 간편하지만 내부에서 정규식을 돌기 때문에 시간이 오래 걸린다
참고 링크로 걸어둔 입력 뜯어보기가 입력에 대한 이해도를 높여준다
꼭 참고하자!

profile
백엔드 프로그래밍을 공부하고 있습니다. AWS, 클라우드 환경에 대해 관심이 많습니다.

0개의 댓글