[백준 Loop] 15552번 문제

Kwon·2023년 10월 23일

백준

목록 보기
5/22

사진 출처 : https://www.acmicpc.net/

백준 15552번 문제


풀이

이번 문제에서 BufferedReaderBufferedWriter를 사용하는게 주요 목적이지만, 아직 자바 초보인 난 구글링 하면서 코딩을 진행했다.

package c_Loop;

import java.io.*;
import java.util.StringTokenizer;


public class Loop6 {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int n = Integer.parseInt(bf.readLine());
        int[] result = new int[n];
        int count = 0;

        for (int i = 0; i < n; i++) {
            StringTokenizer st = new StringTokenizer(bf.readLine());
            int num1 = Integer.parseInt(st.nextToken());
            int num2 = Integer.parseInt(st.nextToken());
            result[i] = num1 + num2;
        }

        for (int i = 0; i < n; i++) {
            bw.write(String.valueOf(result[i]) + "\n");
        }
        bw.flush();
    }
}

BufferedReader() : Scanner와 유사

BufferedWriter() : System.out.println 과 유사

우선 기존에 있던 Scanner와 println 보다 훨씬 빠르기에 많은 데이터 처리하는데 유용하다고 한다.

BufferedReader

readLine은 String형으로 반환되기에 반드시 정수형으로 변환해준 후 입력. 또한 throws IOException을 활용해 예외처리를 해줘야만 한다. (메인 메소드 옆 참고)

read한 데이터는 line 단위로만 나눠지기 떄문에 공백 단위로 하려면 따로 작업을 해줘야 한다.
👉 split() 이용 혹은 nextToken()을 활용

BufferedWriter

BufferedWriter의 경우 버퍼를 잡아 놓기에 반드시 flush()close()를 호출해 마무리 해줘야 한다. 그리고 write() 경우 개행이 없기에 안에 '\n'을 해줘야 한다.

profile
📲 @bu_kwon_2 / 💻 dnu05043.log / ⌨ Back-end / 🦁 LikeLion

0개의 댓글