[Java/백준]1001번: A-B

문제

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

입력

첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

첫째 줄에 A-B를 출력한다.

예제 입력 1

3 2

예제 출력 1

3 2

문제풀이

첫번째 방법: Scanner 클래스 사용

import java.util.Scanner;

class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int A = sc.nextInt();
		int B = sc.nextInt();
		System.out.println(A-B);

		sc.close();
	}
}

처음에 close를 안했는데 찾아보니 필수는 아니지만 닫아주는 것을 적극 권장한다고 한다.
대충 리소스 누수때문이라고 함.
간단하게 풀었는데 찾아보니 역시 다양한 풀이법이 존재했다.

두번째 방법: BufferedReader와 StringTokenizer 사용

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

class Main_1001 {

	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);

		/*
		굳이 String 변수 생성 안하고 입력과 동시에 구분자로 분리해줘도 된다.

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine()," ");
		int a = Integer.parseInt(st.nextToken());
		int b = Integer.parseInt(st.nextToken());

		System.out.println(a-b);

		*/
	}
}


세번째 방법: StringBuilder와 split 사용

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

class Main_1001 {

	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);
	}
}

출처
https://st-lab.tistory.com/14

Discussion and feedback