ezhoon

[백준] 1000_Java 본문

[Java] 백준 문제풀이/입출력과 사칙연산

[백준] 1000_Java

ezhoon 2022. 1. 1. 23:51

 

백준 1000

 

1000번: A+B

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

www.acmicpc.net

 

처음 문제로 가장 간단한 입출력 문제이다.

 

주의할 점

  • 입력 구분이 공백으로 구분된다.

 

문제풀이


Scanner를 사용하는 방식

import java.util.Scanner;

public class Arithmetic_1000 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int A = in.nextInt();
        int B = in.nextInt();

        System.out.println(A+B);
        in.close();
    }
}

위 방식이 친숙하고 대학교 수업 때도 자주 사용했던 방법이다.

하지만 BufferedReader 와 Scanner의 성능 차이가 있기 때문이다. 아직까지는 짧은 코드라서 눈의 띄지는 않는다.

-> 나중에가면 시간 초과로 인해 못 푸는 문제가 생길 수 있다. 실제로도 제한시간을 빡빡하게 둔 문제들이 많기 때문에 꼭 알아둬야 한다.

 

 

BufferedReader를 사용하는 방식

1. StringTokenizer("문자열", 구분자)

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

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String str = br.readLine();
        StringTokenizer st = new StringTokenizer(str, " ");
        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());

        System.out.println(a + b);
    }
}

2. split()

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

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String[] str = br.readLine().split(" ");
        int a = Integer.parseInt(str[0]);
        int b = Integer.parseInt(str[1]);

        System.out.println(a+b);

    }

BufferedReader의 경우 문자열을 받는 방법

  • readLine() -> 한 행을 읽는다.
  • read() -> 한 문자를 읽는다.
특별한 경우가 없는 한 대부분 readLine()을 사용한다.
성능적 측면 StringTokenizer > split 이므로 앞으로 나오는 예제들은 StringTokenizer로 가급적 사용할 예정이다.

 


참고 게시물

Scanner, InputStraem, BufferedReader 정리

'[Java] 백준 문제풀이 > 입출력과 사칙연산' 카테고리의 다른 글

[백준] 10998_Java  (0) 2022.01.02
[백준] 1001_Java  (0) 2022.01.02
[백준] 10172_Java  (0) 2022.01.02
[백준] 10171_Java  (0) 2022.01.02
[백준] 10718_Java  (0) 2022.01.02
Comments