본문 바로가기
Computer/Algorithm_Java

[BaekJoon] 11718번 그대로 출력하기 문제풀이 (Success)

by HJ0216 2023. 5. 9.

 

 

11718번: 그대로 출력하기

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시

www.acmicpc.net

 

Language: Java

 

⭐ EOF: 더이상 읽을 수 있는 데이터가 없을 경우 사용

→ 입력값을 얼마나 받을지 명시하지 않을 경우 사용

 

1. Scanner Class

: hasNext()

: 입력값이 있을 경우 - true, 입력값이 없을 경우 - false

 

2. BufferedReader Class

: EOF 처리 메서드가 없으므로 입력값이 null일 경우, 반복문 종료

 

➕ String str 선언 이유

1. while 조건문 안에 br.readLine()을 바로 선언할 경우,

br 변수의 초기화 문제 또는 null값 할당 문제로 NullPointerException이 발생할 수 있음

 

⭐ str이 null인 경우는 br.readLine()의 결과로 얻은 값이 null인 상태를 의미하므로 NullPointerException이 발생하지 않지만, br이 null인 경우는 br 변수 자체가 null을 가리키는 상태라는 점에서 NullPointerException이 발생할 수 있음

 

2. String str = br.readLine()으로 선언 후, str을 사용할 경우,

while문 안에서 br.readLine()이 호출되지 않는 문제 발생(while문 안에서 br.readLine()이 직접 호출되어야 함)

(=1번만 호출된 br.readLine()에 값이 입력될 경우, line 변수에 저장되어 항상 null이 아니므로 무한루프에 빠질 가능성이 존재함)

 

3. String 선언과 함께 while 조건문을 사용할 경우,

문법적으로 허용되지 않음

 

 

 

소스 코드
🔗 HJ0216/TIL/BOJ

 

참고 자료

📑 EOF의 사용 방법을 알아보자 (JAVA)