본문 바로가기

Backend/JAVA

[Algorithm] 데일리 백준

반응형
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

  public static void main(String[] args) throws Exception {

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    StringBuilder sb = new StringBuilder();

//    while(true){
//      String[] numbers = br.readLine().split(" ");
//
//      int a = Integer.parseInt(numbers[0]);
//      int b = Integer.parseInt(numbers[1]);
//
//      int result = a + b;
//      if(a == 0 && b == 0){
//        break;
//      }
//      sb.append(result + "\n");
//    }
//
//    System.out.println(sb);
    try {
      while (true) {
        String[] numbers = br.readLine().split(" ");

        int a = Integer.parseInt(numbers[0]);
        int b = Integer.parseInt(numbers[1]);

        int result = a + b;
        if (a <= 0 || a >= 10 || b <= 0 || b >= 10) {
          break;
        }
        sb.append(result + "\n");
      }
      System.out.println(sb);
      br.close();
    } catch (Exception e) {
    }

  }
}

 

10951은 EOF에 관한 문제인데 테스트시 Ctrl+z 또는 Ctrl+d를 누르면 확인이 가능

 

하지만 위의 10951(주석이 아닌 부분)은  try-catch로 검증해도 NullpointerException이 발생하는데 조금 더 수정해 봐야 할것 같다.

 

확인해 보니 강제종료 뿐만이 아니라 입력이 null일때도 처리가 되어야 한다고 한다.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

  public static void main(String[] args) throws Exception {

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    StringBuilder sb = new StringBuilder();

    try {
      String input;
      while ((input = br.readLine()) != null) { // 입력 값이 null이 아닐 때까지 반복
        String[] numbers = input.split(" ");

        if (numbers.length < 2) {
          continue; // 입력 값이 2개 미만인 경우 무시
        }

        int a = Integer.parseInt(numbers[0]);
        int b = Integer.parseInt(numbers[1]);
        int result = a + b;

        // 범위 조건이 있었으나 문제 요구에 따라 정수 제한을 벗어나도록 수정
        sb.append(result + "\n");
      }
      bw.write(sb.toString()); // StringBuilder에 저장된 결과를 한번에 출력
      bw.flush(); // 출력 버퍼를 강제로 비워 실제 출력장치로 보냄
    } finally {
      br.close();
      bw.close(); // BufferedWriter도 안전하게 닫아주는 것이 좋음
    }

  }
}
반응형

'Backend > JAVA' 카테고리의 다른 글

[Algorithm] 데일리 백준  (0) 2024.04.29
[Algorithm] 데일리 백준  (0) 2024.04.26
[Algorithm] 데일리 백준  (0) 2024.04.12
[Algorithm] 데일리 백준  (0) 2024.04.09
[Algorithm] 데일리 백준  (0) 2024.04.05