JAVA 코딩테스트 :: 입출력 시간 줄이기

s_omi·2022년 7월 19일
0

JAVA (자바)

목록 보기
40/62
post-thumbnail

📝 BufferedReader

  • Scanner 와 같은 역할
  • 장점: 처리 속도가 매우 빠름.

⚠ 리턴 값이 String
IO Exception 예외처리해주어야 함.

▶ 코드 비교

  • Scanner 사용
 public static void main(String[] args) {
	Scanner scanner = new Scanner(System.in);
	int n = scanner.nextInt();
	int answer = 0;
    
	for(int i = 1; i < n+1; i++) {
		answer += i;
	}
    
	System.out.print(answer);
 }
  • BufferedReader 사용
 public static void main(String[] args) throws IOException {
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));     
	int n = Integer.parseInt(br.readLine());  // br.readLine()은 리턴 값이 String 
	int answer = 0;
    
	for(int i = 1; i < n+1; i++) {
		answer += i;
	}
    
	System.out.print(answer);
    br.close();
 }

▶ 결과 비교

  • Scanner : 204ms
  • BufferedReader : 120ms


+ StringTokenizer 사용
 public static void main(String[] args) {
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
	int T = Integer.parseInt(br.readLine());  // 2 5 
    
	StringTokenizer st = new StringTokenizer(br.readLine(), " ");
	bw.write(Integer.parseInt(st.nextToken());  // 2
	bw.write(Integer.parseInt(st.nextToken());  // 5
        
	br.close(); bw.flush(); bw.close();
 }


📝 BufferedWriter

  • print() 와 같은 역할
    ⚠ 리턴 값이 String
    IO Exception 처리해주어야 함.

▶ 코드 비교

  • print() 사용
 public static void main(String[] args) {
	Scanner scanner = new Scanner(System.in);
	int n = scanner.nextInt();
	int answer = 0;
    
	for(int i = 1; i < n+1; i++) {
		answer += i;
	}
    
	System.out.print(answer);
 }
  • BufferedWriter 사용
 public static void main(String[] args) throws IOException {
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));     
	int n = Integer.parseInt(br.readLine());  // br.readLine()은 리턴 값이 String 
	int answer = 0;
    
	for(int i = 1; i < n+1; i++) {
		answer += i;
	}
    
	System.out.print(answer);
    br.close();
 }

▶ 결과 비교

  • print() : 204ms
  • BufferedWriter : 216ms

    ➞ 별 차이가 없다.
profile
공부한 거 올려요 :)

0개의 댓글