https://st-lab.tistory.com/40?category=832565
[백준] 10951번 : A+B - 4 - JAVA [자바]
https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 간단한 문제지만 의외로 종료시점을 몰라 틀리는 경우들..
st-lab.tistory.com
*해당 포스팅은 상단에 링크된 포스팅을 바탕으로 개인 공부 목적을 위해 작성되었으므로 자세한 내용은 위 링크를 확인해 주시기 바랍니다.
이 문제의 요지는 파일 종료 조건 없이 입력이 주어졌고 읽을 수 있는 데이터가 존재하지 않을 때 반복문을 종료하는 것이다. 이때를 EOF(End Of File: 파일의 끝)라 하는데 데이터 소스로부터 더 이상 읽을 데이터가 없음을 나타낸다.
※ 공백이나 엔터도 문자열로 받아들여지기 때문에 반복문을 종료시키려면 EOF를 입력해야 한다.
- 윈도우 : ctrl + Z
- 리눅스계열 : ctrl + D
Scanner의 경우
hasNextInt()를 사용해서 입력 값이 정수이면 true 반환, 정수가 아니면 false를 반환하면서 반복문이 종료된다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
int A = sc.nextInt();
int B = sc.nextInt();
System.out.println(A+B);
}
sc.close();
}
}
BufferedReader의 경우
null을 반환하므로 조건문으로 null인지 아닌지 구분해 준다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String str;
while ((str = br.readLine()) != null) {
int A = str.charAt(0) - '0';
int B = str.charAt(0) - '0';
sb.append(A + B).append("\n");
}
br.close();
System.out.println(sb);
}
}
'Computer Science > Algorithm' 카테고리의 다른 글
[JAVA] 숫자의 개수 (0) | 2022.03.06 |
---|---|
[JAVA] 최소, 최대 (0) | 2022.03.04 |
[JAVA] A+B - 5 (0) | 2022.03.03 |
[JAVA] X보다 작은 수 (0) | 2022.03.03 |
[JAVA] 빠른 A+B (0) | 2022.03.02 |