본문 바로가기

[BOJ] - JAVA

[백준] 11654 : 아스키 JAVA 풀이

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        char c = str.charAt(0);
        System.out.printf("%d", (int)c);
    }
}

이게 아무런 참고자료 없이 내가 짠 코드인데 여러모로 찝찝했다..

문자열로 입력받은 뒤 문자로 변환하고 그걸 다시 정수형으로 캐스팅한다는 점이

비효율적으로 보여서 다른 분들의 풀이를 찾아보았다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        int c = str.charAt(0);
        System.out.printf("%d", c);
    }
}

이건 문자열을 입력받고 문자로 변환한 뒤 int형 변수에 바로 저장하는 방식이다.

char형 변수도 사실 문자가 아닌 정수값을 저장한다는 특징을 이용한 것 같다.

 

public class Main{
    public static void main(String[] args) throws Exception {
        int c = System.in.read();
        System.out.print(c);
    }
}

더욱 개선된 풀이방법을 찾았는데..공부를 열심히 해야겠다는 생각이 들었다. 하하