본문 바로가기

알고리즘/백준

[백준 알고리즘 자바]11654 : 아스키 코드

수행일자 : 2021.08.19


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

 

11654번: 아스키 코드

알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.

www.acmicpc.net


문제

  • 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.

입력

  • 알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다.

출력

  • 입력으로 주어진 글자의 아스키 코드 값을 출력한다.

입출력 예제


이번 문제는 오랜만에 Scanner 와 BufferedReader를 사용하여 두 가지 방식으로 풀어보았다.

 

Scanner 를 사용할 때에는 charAt() 메소드를, BufferedReader를 사용할 때에는 read() 메소드를 사용할 것이다.

 

1. Scanner

먼저, 입력받을 정수 num을 선언한다.

Scanner 중에서 문자를 받기 위해 String 형을 리턴하는 next() 메소드를 사용하여 선언해준다.

이렇게 문자로 입력을 받은 후에 charAt() 메소드를 사용해서 입력받은 문자열을 잘라 문자로 변환한다.

변환된 문자열을 int 형 변수에 넣어주면 해당 문자에 맞는 아스키 코드 값으로 변환하여 출력해준다.

답안 소스 - Scanner

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int num = sc.next().charAt(0);
		
		System.out.println(num);
	}
}

2. BufferedReader

입력받을 변수 num을 선언한다.

read() 메소드를 사용하여 입력받은 값을 변수에 저장한다.

read() 메소드는 입력 스트림으로부터 문자열을 입력받아 하나의 문자를 리턴한다.

여기에 선언한 변수가 int 형이므로 출력한 값들은 아스키 코드 값으로 나오게 된다.

  • 만약 아스키코드가 아닌, 문자 자체를 출력하고 싶다면 (System.out.println(char)num); 를 통해 문자형으로 변환해주면 된다.

답안 소스 - BufferedReader

 

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));
		
		int num = br.read();
		System.out.println(num);

	}
}

read() 메소드 자체가 입력받은 값을 읽어서 하나의 문자로 출력해주는 것이기 때문에 아래와 같은 방법으로도 쓸 수 있다.

답안 소스 - read()

import java.io.IOException;

public class Main {

	public static void main(String[] args) throws IOException {
		
		int num = System.in.read();
		System.out.println(num);

	}

}