자라나라 개발머리

[백준 알고리즘/JAVA 11] 10951: A + B - 4/EOF 뜻 본문

알고리즘/백준 알고리즘

[백준 알고리즘/JAVA 11] 10951: A + B - 4/EOF 뜻

iammindy 2022. 8. 8. 20:04

문제

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

 

10951번: A+B - 4

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

 

문제 정리

- 오답 이유

EOF에 대해 몰랐기 때문

 

- 정리

EOF란?

End Of File의 약자로, 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타낸다. 

라고 써 있긴 하지만 도통 무슨 소린지 모르겠다. 콘솔 입출력만 줄곧 해왔던 알고리즘 초보여서 데이터 소스에서 읽을 수 있는 데이터가 없다는 말 부터가 이해가 안갔다. 콘솔에서 입력을 하는데 어떻게 데이터가 없어?!?!?!??

 

알고보니 콘솔 입력이 아니라 파일 입력에서 사용하는 용어였다. 사실 end of FILE 이라고 대놓고 써있다.

그래서 쉽게 풀어말하면, EOF는 파일의 끝에서 더이상 읽을 데이터가 없다고 컴퓨터에 알려주는 방법이다. 해당 문제처럼 입력 값의 수를 명시해놓지 않은 문제에서는 EOF 처리가 필요하다.

 

 

다음 링크에 JAVA Scanner와 BufferedReader의 EOF처리 방법을 작성해놓았다.

https://growupdevmind.tistory.com/9

 

[JAVA 11] EOF 처리 방법 (Scanner, BufferedReader)

EOF: End Of File, 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타낸다. 입력 방식마다 EOF처리 방식이 다르다. 일반적으로 쓰이는 Scanner, BufferedReader의 EOF처리 방식을 알아보자. 1.Scanne

growupdevmind.tistory.com

 

최종 코드

import java.io.*;

public class Main {

	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		String str= "";
		
		while(( str=br.readLine() ) != null) {
			int sum = (str.charAt(0)-48)+(str.charAt(2)-48);
			System.out.println(sum);
		}
	}
}