누룽지맛치킨
어미새의 개발일지
누룽지맛치킨
전체 방문자
오늘
어제
  • 분류 전체보기 (86)
    • 코틀린 (8)
    • 안드로이드 (5)
      • 디자인 (2)
      • 개발 (2)
      • 도구 (1)
    • 피그마 (1)
    • 대외활동 (0)
    • 프로젝트 (0)
    • 백준 (55)
      • JAVA (55)
    • 알고리즘 (3)
    • 클라우드 (5)
    • 스터디 (2)
      • 코테 (2)
    • 자료구조 (5)
    • 컴퓨터 기술 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준 자바 2559번
  • 코틀린 인 액션
  • 백준 자바 2292번
  • 클라우드
  • 알고리즘 조합
  • 백준 자바 벌집
  • 백준 자바 정렬
  • Room version 올리기
  • 자료구조
  • 백준 자바
  • 코틀린
  • 백준 자바 수열
  • 자바 Priority Queue
  • 클라우드 컴퓨팅
  • 안드로이드 디자인
  • 백준 자바 다이나믹 프로그래밍
  • Room Migration
  • 백준 자바 누적합
  • 안드로이드
  • 코틀린 runBlocking

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
누룽지맛치킨

어미새의 개발일지

백준/JAVA

[백준/JAVA] 15552번 빠른 A+B

2023. 1. 16. 15:46
  • BufferedReader, BufferedWriter을 이용한 빠른 입출력

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

1. 문제 접근

  • 하나의 입력을 받는다.
  • 입력된 수만큼 반복해서 2개의 수를 입력받고 두 수의 합을 출력한다.

-> 기존에 사용하던 Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter 사용!

Scanner와 BufferedReader의 차이점!

  • Scanner은 java.util 패키지 클래스로 간단한 입력을 받을 때 유용! 또한 Scanner은 공백과 개행 모두를 경계로 나누어 입력을 받는다.
  • BufferedReader은 java.io 패키지 클래스로 입력 데이터를 바로 처리하지 않고 버퍼링을 하고 한번에 데이터를 전달하기 때문에 많은 양의 데이터를 효율적으로 입력받을 수 있다. 또한 개행만 경계로 인식한다. Scanner는 원하는 자료형으로 입력을 받을 수 있지만 BufferedReader은 String으로만 입력을 받을 수 있다.

BufferedWriter의 특징!

  • BufferedWriter는 버퍼 스트림을 생성하여 출력되는 데이터를 버퍼링하여 한번에 출력하는 특징을 가진다. 고로 System.out.prinln과 비교 했을 때 데이터의 양이 많아질 수록 더 효율적으로 데이터를 출력할 수 있고 시간도 단축 된다. 개행이 포함되어 있지 않기 떄문에 "\n", 개행을 따로 추가해주어야 하고 flush()를 통해 버퍼에 남은 데이터를 출력해주는 일, 버퍼를 다 쓰고 종료해주는 close()를 실행주는 것이 좋다.

2. 코드

import java.io.IOException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
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());
            int n1 = Integer.parseInt(st.nextToken());
            int n2 = Integer.parseInt(st.nextToken());
            bw.write(n1+n2+"\n");
        }
        bw.flush();
        bw.close();
    }
}

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

[백준/JAVA] 단계별로 풀어보기(2단계) 코드 모음  (0) 2023.01.17
[백준/JAVA] 단계별로 풀어보기(1단계) 코드 모음  (0) 2023.01.16
[백준/JAVA] 11021번 A+B-7  (0) 2023.01.16
[백준/JAVA] 1008번 A/B  (0) 2023.01.16
[백준/JAVA] 2480번 주사위 세개  (0) 2023.01.16
    '백준/JAVA' 카테고리의 다른 글
    • [백준/JAVA] 단계별로 풀어보기(1단계) 코드 모음
    • [백준/JAVA] 11021번 A+B-7
    • [백준/JAVA] 1008번 A/B
    • [백준/JAVA] 2480번 주사위 세개
    누룽지맛치킨
    누룽지맛치킨

    티스토리툴바