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

 

 

 

 


 

 

import java.util.Scanner;

 

public class Main {

public static void main(String[] args) {

 

Scanner scan = new Scanner(System.in);

 

int x = scan.nextInt();

 

 

int[] rs = new int[x];

 

for (int i = 0; i < x; i++) {

rs[i] += scan.nextInt() + scan.nextInt();

}

 

scan.close();

 

for (int i = 0; i < x; i++) {

System.out.println(rs[i]);

}

 

}

}

 

이전 글과 같이 scanner를 이용할 시 시간초과로 문제 합격이 되지 않는다.

 


합격을 위해서는 scanner 대신 buffered를 사용해야한다.

 

scanner

설명

- 사용자가 입력을 쉽게 처리하도록 설계된 클래스. 주로 콘솔 입력에서 사용

장점 

- 다양한 데이터 타입을 바로 읽을 수 있음(String, int, doubld)

- 공백을 기준을 입력을 분리

단점

- 속도가 느림(대량 데이터 입력 처리에 부적합)

 

BufferedReader

설명

- 입력을 한 줄 단위로 처리하거나 대량 데이터를 읽는데 적합

장점

- 속도가 빠름(대량 데이터에 유리)

단점

- String으로 데이터를 읽기 때문에 변환이 필요함

 

 

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

 

public class Main {

public static void main(String[] args) throws IOException{

 

BufferedReader read = new BufferedReader(new InputStreamReader(System.in));

BufferedWriter write = new BufferedWriter(new OutputStreamWriter(System.out));

 

int total = Integer.parseInt(read.readLine());

 

for (int i = 0; i < total; i++) {

String[] x = read.readLine().split(" ");

write.write(Integer.parseInt(x[0]) + Integer.parseInt(x[1]) + "\n");

}

 

write.flush();

 

read.close();

write.close();

 

 

}

}

 

BufferedReader read = new BufferedReader(new InputStreamReader(System.in));

BufferedReader 콘솔로부터 입력을 받기 위해 사용된다.

(Scanner와 동일하다고 보면된다.)

 

int total = Integer.parseInt(read.readLine());

몇개의 계산식을 쓸지 적는건데,  read.readLine() String값으로 읽기 때문에 Integer.parseInt로 int화 시켜준다.

 

for (int i = 0; i < total; i++) {

String[] x = read.readLine().split(" ");

write.write(Integer.parseInt(x[0]) + Integer.parseInt(x[1]) + "\n");

}

 

String[] x = read.readLine().split(" ");

앞서 설명했듯이 BufferedReader는 기존에 Scanner와 달리 String으로 입력을 받기 때문에 띄워쓰기를 한다고 구분이 되지 않아 1 1 이렇게 입력을 해도 변수에 1 1로 저장이 된다.

그래서 배열을 만들어 " " 를 기준으로 각각의 데이터를 배열에 저장해준다.

 

write.write(Integer.parseInt(x[0]) + Integer.parseInt(x[1]) + "\n");

.write로 데이터를 기록(앞서 배열에 넣었던 값을 저장 후 줄바꿈을 해준다/write에 기록된 데이터는 BufferedWriter로 한 번에 불러올 수 있음)

 

write.flush();

for문으로 모든 계산의 결과값을 기록된것을 flush를 호출하여 기록된 데이터들을 출력한다.

 

 

 

 

'백준' 카테고리의 다른 글

백준 25304 영수증  (0) 2025.01.02
백준 8393 합  (0) 2025.01.01
백준 10950 A+B -3  (0) 2024.12.31
백준 2739 구구단  (1) 2024.12.30
백준 2480 주사위 세개  (0) 2024.12.29

+ Recent posts