ToBe끝판왕

[ 알고리즘 ] 백준 1001번 문제 - 자바( JAVA ) 본문

■ 알고리즘/백준 JAVA

[ 알고리즘 ] 백준 1001번 문제 - 자바( JAVA )

업그레이드중 2022. 5. 12. 21:26
반응형

주의사항

※ 백준에서 정해진 출력 형식을 출력해야 한다.
※ 백준 알고리즘에서는 클래스명을 Main으로 해주어야 한다.

 


 

백준 1001번 문제

 

백준 알고리즘의 단계별 문제 풀기

1단계 < 입출력과 사칙연산 >

 

 

▶ 해당 문제 링크

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

 

1001번: A-B

두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 


 

코딩 하기

 

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

public class Main {
    
    public static void main( String[] args ) throws IOException {
        
        BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
        
        String[] Str = br.readLine().split( " " );
        int A = Integer.parseInt( Str[0] );
        int B = Integer.parseInt( Str[1] );
        
        System.out.println( A-B );
    }
}

 

 

 

문제 풀이

 

1000번 A+B 문제는 Scanner클래스를 이용하여 입력받아 문제를 해결하였지만

10001번 문제는 BufferedReader를 이용하여 문제를 해결하려 한다.

 

Scanner와 BufferedReader의 가장 큰 차이점은 바로 속도이다.

Scanner는 편리하지만 속도가 느리다는 다는점이 있어, 알고리즘 문제에서의 시간초과와

에러를 내는 치명적인 단점이 있다.

하지만, BufferedReader는 한줄을 통째로 입력받는 방법으로 이것저것 선언해야할 것이 많아

번거로울수 있지만, 버퍼를 사용하여 입력속도를 확연히 줄일 수 있다.

 

 

 

1) BufferedReader , InputStreamReader , IOException 클래스 import

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

BufferedReader 사용에 필요한 클래스들을 위해 java.io 패키지에서 import를 한다.

 

※ 자바에서 가장 기본이 되는 입력 스트림 = InputStream

※ 자바에서 가장 기본이 되는 출력 스트림 = OutputStream

 

 

2) BufferedReader의 사용

BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
        
        String[] Str = br.readLine().split( " " );

사용자의 키보드 입력은 System.in을 통해 얻을 수 있다. 하지만 입력을 Byte 단위로 읽어들이기 때문에

입력을 character로 읽어들이는 InputStreamReader클래스를 사용하여 System.in을 객체로 활용한다.

 

입력은 한줄을 읽을 수 있게 readLine( ) 메서드를 사용

( 반드시 예외처리를 필요로 한다. )

 

BufferedReader를 통해 읽어온 데이터는 개행문자 단위( Line 단위 )로 나누어지는데

만약 이를, 공백단위로 데이터를 가공하고자 하면 split( ) 함수를 사용한다

split( ) 함수를 사용하여 배열에 공백단위로 끊어 String 배열에 저장 및 사용할수 있게 한다.

 

 

3) 형변환

        int A = Integer.parseInt( Str[0] );
        int B = Integer.parseInt( Str[1] );
        
        System.out.println( A-B );

문자열로 반환된 값을 Integer.parseInt( ) 메서드를 통해 Int 타입으로 형변환 한다.

그리고 A-B 값을 출력한다.

반응형
Comments