[백준] 10951번: A + B - 4 - Java, 자바

xxx-sj·2023년 8월 29일
0

알고리즘

목록 보기
20/46

문제 접근

이 문제에서는 테스트케이스 (T)가 주어지지않는다. 즉, 종료시점을 알 수 없다는 것이다. 이 전 문제에서는 모두 테스트케이스가 주어지고, 그 만큼만 수행을 하면 되었지만 이 문제는 다르다.
이 문제에서는 입력을 받지 않을 때가 종료시점이다.
이 후의 문제는 입력받은 두 수를 출력해주면 된다.

전체코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st;
        String str;
//        while((str = br.readLine()) != null)
        while(true) {
            str = br.readLine();
            if(str == null) break;;
            st = new StringTokenizer(str, " ");
            int A = Integer.parseInt(st.nextToken());
            int B = Integer.parseInt(st.nextToken());

            sb.append((A + B));
            sb.append("\n");
        }
        System.out.println(sb);
    }
}

코드 상세

이 문제는 다른 문제와 동일하게 한 줄을 읽어들여 두 숫자를 합치는데
문제는 케이스가 정해져있지 않다는 것이다. 이번 문제에서는 BufferedReader를 이용하여
문자열을 읽어들이는데 만약 입력한 문자열이 없을 경우 br.readLine();는 null을 반환한다.
while문의 종료시점은 br.readLine()의 반환이 null일 때이다.

while(true) {
    str = br.readLine();
    if(str == null) break;;
    st = new StringTokenizer(str, " ");
    int A = Integer.parseInt(st.nextToken());
    int B = Integer.parseInt(st.nextToken());

    sb.append((A + B));
    sb.append("\n");
}
System.out.println(sb);
profile
틀려도 일단 기록하자

0개의 댓글