정보
분류 : 반복문
문제
풀이
- 풀이 1 ( Scanner ) → 268ms
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
for(int i = 1 ; i <= a ; i++) {
int b = sc.nextInt();
int c = sc.nextInt();
System.out.println("Case #"+(i)+": "+(b + c));
}
}
}
- 풀이 2 ( BufferedReader + println() + String.split() ) → 164ms
import java.io.*;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
// InputStream : 자바의 가장 기본이 되는 입력 스트림
BufferedReader br = new BufferedReader(new InputStreamReader(System.in))
int a = Integer.parseInt(br.readLine());
for(int i = 1 ; i <= a ; i++) {
String str = br.readLine();
int b = Integer.parseInt(str.split(" ")[0]);
int c = Integer.parseInt(str.split(" ")[1]);
System.out.println("Case #"+(i)+": "+(b + c));
}
// 입력 종료
br.close();
}
}
- 풀이 3 ( BufferedReader + BufferedWriter + StringTokenizer ) → 152ms
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// InputStream : 자바의 가장 기본이 되는 입력 스트림
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// OutputStreamWriter : 자바의 가장 기본이 되는 출력 스트림
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// Stream 이란 출발지와 도착지를 이어주는 다리다.
// 입력 값을 String에서 int로 변환.
int a = Integer.parseInt(br.readLine());
// 문자열 분리 담당
StringTokenizer str;
for(int i = 1 ; i <= a ; i++) {
str = new StringTokenizer(br.readLine(), " ");
int b = Integer.parseInt(str.nextToken());
int c = Integer.parseInt(str.nextToken());
bw.write("Case #" + i + ": " + (b + c) + "\n");
}
// 입력 종료
br.close();
// 출력 비우고
bw.flush();
// 출력 종료
bw.close();
}
}
풀이 후기
기존 풀어뒀던 문제는 Scanner로 되어있어서 BufferedReader를 사용해서 풀어보았다.
성능 차이 장난 아니다🤔👏
참고 블로그를 보니까 StringTokenizer 클래스를 사용했길래 나도 사용해보았다.
나는 문자열 분리할 때 String.split()를 사용했었는데 문자열 분리해주는 클래스도 있다는걸 처음 알았다.
신기하다👏👏
BurreredReader : 입력이 모두 완료 되었으면 종료(close())
BufferedWriter : 필수로 출력이 모두 완료되었으면 비우고(flush()) 종료(close())
reference
'💡문제 풀이 > 백준 - JAVA' 카테고리의 다른 글
별 찍기 - 1 / 2438 (0) | 2023.11.17 |
---|---|
A+B - 8 / 11022 (0) | 2023.11.16 |
빠른 A+B / 15552 (0) | 2023.11.16 |
코딩은 체육과목 입니다 / 25314 (0) | 2023.11.16 |
영수증 / 25304 (0) | 2023.11.13 |