본문 바로가기
Language/Java

[백준 | Java] 11719번 그대로 출력하기 2

by ㅇ달빛천사ㅇ 2025. 1. 15.
728x90
11719번 / 그대로 출력하기 2

그대로 출력하기 2

🏷️ 관련 주제 : BufferedReader BufferedWriter NullPointerException

 

문제

입력 받은 대로 출력하는 프로그램을 작성하시오.

입력

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 있을 수도 있다.

출력

입력받은 그대로 출력한다.

예제 입력 1

    Hello

Baekjoon     
   Online Judge    

예제 출력 2

    Hello

Baekjoon     
   Online Judge    

출처

  • 문제를 만든 사람: baekjoon

알고리즘 분류

  • 구현
  • 문자열



💦 나의 시도

Try01

어제 처음 알게된 BufferedWriter, BufferedReader를 사용

  • 반복문(while(true){...})을 통해 문자열을 입력받고 입력값이 없는데 bw.readLine();을 실행하면 예외가 발생할 것이라 생각하여 try-catch문으로 예외 처리하는 부분에서 출력을 하려고 함.

❌ 틀렸습니다.

Try02

while(true){...}에서 예외가 발생하지 않는건가?
라고 생각하여 while문 안에서 한줄씩 입력 받고 bw.flush();로 바로 바로 출력

💥 런타임 에러(NullPointer)

Try03

while(true){...} 부분에서 예외가 발생하는 것 같아서 입력값 null 체크 및 반복문을 종료하는 조건문 추가

🎉드디어 성공!🎉

  • 메모리 : 11684 KB
  • 시간 : 68 ms

 

📑제출 기록 및 오답 원인

💯 해결 방법

import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;

class Main {
    public static void main(String[] args) {
        try {
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            while(true) {
                String input = br.readLine();
                if (input == null) {
                    break;
                }
                bw.write(input);
                bw.newLine();
                bw.flush();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
728x90


Top