본문 바로가기
Computer Science/Algorithm

[JAVA] A+B - 4

by soro.k 2022. 3. 3.

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