상냥한 세상 :: [백준]15552번: 빠른 A+B

본문으로 바로가기

[백준]15552번: 빠른 A+B

category Computer Science/BAEKJOON JAVA Practice 2022. 1. 9. 15:47

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

 

15552번: 빠른 A+B

첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.

www.acmicpc.net

  • 문제

 

이전에 포스팅했던 BufferedWriter과 BufferedReader사용에 대한 개념과 다양한 문제들에 익숙해져 있다면 이 문제는 가벼운 리뷰정도로 보면된다. 

빠른 정리에 도움이 될만한 글
https://wkimdev.github.io/java/2018/04/06/java-io-bufferedreader/

 

Java 입출력, BufferedReader, StringTokenizer · Codinfox Lanyon

BufferedReader를 사용했을시, 92MS로 처리속도 단축.

wkimdev.github.io


  • 코드 1
//BufferedReader+StringBuilder을 사용

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

public class Main{
	public static void main(String[] args)throws IOException{
    	BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        int N=Integer.parseInt(br.readLine());
        
        StringTokenizer st;
        StringBuilder sb=new StrinbBuilder();
        
        for(int i=0; i<N; i++){
        	st=new StringTokenizer(br.readLine(), " ");
        	sb.append(Integer.parseInt(st.nextToken()) + Integer.parseInt(st.nextToken())).append('\n');
        }
        br.close();
        
        System.out.println(sb);
   }
}

st.nextToken()으로 예를들어 키보드로 0을 입력했다면,문자열로 인식한상태기 때문에 Integer.parseInt를 통해 정수형으로 변환해주어야 한다. 이런식으로 테스트횟수를 N으로 지정한뒤, N번째횟수까지 계속 숫자2개씩 입력후 줄바꿈을 하여 sb.append메소드로 저장해준다. 

for문을 빠져나와 sb를 출력문으로 한꺼번에 출력해주면 끝이다. 


  • 결과


  • 코드 2
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
 
public class Main {
 
	public static void main(String[] args) throws IOException {
 
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
 
 
		int N = Integer.parseInt(br.readLine());
        
		StringTokenizer st;
 
		for (int i = 0; i < N; i++) {
			st = new StringTokenizer(br.readLine()," ");
			bw.write((Integer.parseInt(st.nextToken()) + Integer.parseInt(st.nextToken()))+ "\n");
		}
		br.close();
        
		bw.flush();
		bw.close();
 
	}
}

  • 결과


  • 코드 1,2 성능 비교

BufferedReader+StringBuilder사용
BufferedReader+BufferedWriter사용

'Computer Science > BAEKJOON JAVA Practice' 카테고리의 다른 글

[백준]2742번: 기찍N  (0) 2022.01.11
[백준]2741번: N찍기  (0) 2022.01.11
[백준]8393번: 합  (0) 2022.01.09
[백준]10950번: A+B-3  (0) 2022.01.08
[백준]2739번: 구구단  (0) 2022.01.08