일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 데이터 조회
- Java
- 리눅스
- 프로그래머스 sql 고득점 kit
- DML
- where
- 웹개발
- 스프링
- 예외처리
- html
- scanner
- 정보처리기사
- github
- select문
- select
- mybatis
- 프론트엔드
- 알고리즘
- String클래스
- 개발자
- 백엔드
- 자바스크립트
- SQL
- JavaScript
- Git
- 메서드
- 정보처리기사필기요약
- Linux
- 형변환
- 클래스
- StringBuilder
- 프로그래머스 SQL
- 프로그래밍
- sql문
- 입출력
- order by
- MySQL
- 자바
- 백준
- BufferedReader
- Today
- Total
ToBe끝판왕
[ 알고리즘 ] 백준 1001번 문제 - 자바( JAVA ) 본문
주의사항
※ 백준에서 정해진 출력 형식을 출력해야 한다.
※ 백준 알고리즘에서는 클래스명을 Main으로 해주어야 한다.
백준 1001번 문제
백준 알고리즘의 단계별 문제 풀기
1단계 < 입출력과 사칙연산 >
▶ 해당 문제 링크
https://www.acmicpc.net/problem/1001
코딩 하기
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 값을 출력한다.
'■ 알고리즘 > 백준 JAVA' 카테고리의 다른 글
[ 알고리즘 ] 백준 10926번 문제 - 자바( JAVA ) (0) | 2022.05.16 |
---|---|
[ 알고리즘 ] 백준 1008번 문제 - 자바( JAVA ) (0) | 2022.05.15 |
[ 알고리즘 ] 백준 1000번 문제 - 자바( JAVA ) (0) | 2022.05.12 |
[ 알고리즘 ] 백준 10171번 문제 - 자바( JAVA ) (0) | 2022.05.12 |
[ 알고리즘 ] 백준 10718번 문제 - 자바( JAVA ) (0) | 2022.05.12 |