기능,개념 & 알고리즘/알고리즘

백준 15552번 빠른 A+B

ChoiDooSic 2021. 7. 21. 23:52

첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.
각 테스트케이스마다 A+B를 한 줄에 하나씩 순서대로 출력한다.

※ 버퍼에 대한 간단한 설명
버퍼(buffer)는 데이터를 a라는 곳에서 b라는 곳으로 전송하는 동안 임시 저장해주는 메모리 영역이다.
버퍼플러시(buffer flush) 버퍼에 있는 데이터를 출력시켜준다
BufferedReader은 Enter(/n)만 경계로 인식하고 받은 데이터가 String으로 고정된다

 

1.readLine(): 안에 들어있는 내용을 라인(한줄)단위로 읽어온다
값은 스트링으로 고정되었기 때문에 Integer.parseInt를 통해 타입을 변환시켜준다.
2.StringTokenizer.nextToken() 을 사용하면 문자열을 공백단위로 구분지어 가져올수 있다
3.for문이 next에 입력받은 숫자값 만큼 돌건데 공백단위로 문자를 분리해주기 때문에
콘솔창에 입력할때에 스캐너를 쓰듯 한번 입력하고 엔터를 누르는 것이 아니라 숫자입력 => 스페이스바

=> 숫자입력 => 엔터를 해주어야
숫자를 더할수 있다

4. flush는 버퍼에 남아있는 데이터들을 모두 출력하여준다.

 

15552번 알고리즘 문제를 쉽게 요약하자면

BufferedReader로 숫자를 받아 받은 숫자값 만큼 반복문을 돌리고 반복문이 돌아가는 동안에

BufferedReader로 숫자 2개를 공백을 사이에 끼고 읽어들여서 StringTokenizer.nextToken으로 공백 단위로 나눠서

String타입 변수들을 Integer.parseInt를 이용해 int타입으로 변환시킨후 합쳐주고 flush를 사용해 출력해주는 문제이다

'기능,개념 & 알고리즘 > 알고리즘' 카테고리의 다른 글

백준 4344 자바  (0) 2021.08.31
백준 4673 자바  (0) 2021.08.31
백준 10952자바  (0) 2021.08.24
백준 2439  (0) 2021.07.25
백준 2741번 1번부터 N번까지 빠른 출력  (0) 2021.07.23