# 문제
- 주소: https://www.acmicpc.net/problem/1001
- 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오.
# 코드
- Scanner, BufferedReader+InputStreamReader 사용
▼ Scanner 사용
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// System.out.println("첫 번째 값 입력: ");
int A = sc.nextInt();
// System.out.println("두 번째 값 입력: ");
int B = sc.nextInt();
int sum = A - B;
System.out.println(sum);
sc.close();
}
}
▼ BufferedReader + InputStreamReader 사용 - 1
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int A = Integer.parseInt(br.readLine());
int B = Integer.parseInt(br.readLine());
int sum = A - B;
System.out.println(sum);
}
}
▼ BufferedReader + InputStreamReader 사용 - 2
* 백준에 제출할 때에는 BufferedReader로 입력받은 값을 공백 기준으로 나누어서 각 값을 String타입의 배열에 담은 다음 숫자로 형변환 시켜서 출력
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] strs = br.readLine().split(" ");
int A = Integer.parseInt(strs[0]);
int B = Integer.parseInt(strs[1]);
int sum = A - B;
System.out.println(sum);
}
}
# 입/출력 결과
▼ Scanner 사용 했을 때, 입/출력 모습
▼ BufferedReader + InputStreamReaer 사용 했을 때, 입/출력 모습 (1)
▼ BufferedReader + InputStreamReaer 사용 했을 때, 입/출력 모습 (2)
=> 백준에 제출하기 위해 .split() 사용한 거.
# 과정
- 첫 번째는 Scanner 클래스로 문제를 풀었다.
- 처음에 틀린 이유는 문제 풀이에 필요없는 소스 코드를 작성했더니 틀렸다는 말이 나왔다.
- 틀린 이유:
- System.out.println("두 수의 합은: " + sum); 이렇게 했더니 틀렸다.
- 해경 방법:
- System.out.println() 안에 쓸데없는 텍스트는 지우고 sum 만 입력하니 통과됐다.
- 두 번째는 BufferedReader + InputStreamReader 클래스로 문제를 풀었다.
- 어제 문제를 푼 A+B와 동일한 문제 발생.
- 틀린 이유:
- 자동으로 입력 받은 값이 한 줄로 입력되다 보니 문자열 형태로 저장되었다.
- 해결 방법:
- 자동으로 입력받은 값을 .split()를 사용하여 공백 기준으로 나눈 다음, 각각 값을 String타입의 배열로 저장하기.
- 그 다음, 0번째, 1번째의 값을 각각 int타입의 A, B 변수에 형변환하여 저장 후 A-B 계산하여 출력.
# 느낀 점
- 어제 푼 A + B와 같은 맥락이라서 복습 차원으로 문제를 풀었다.
'코딩 테스트' 카테고리의 다른 글
[코딩테스트] 백준 10869번: 사칙연산 (Java) (0) | 2025.05.05 |
---|---|
[코딩테스트] 백준 1008번: A/B (Java) (0) | 2025.05.04 |
[코딩테스트] 백준 10998번: AxB (Java) (0) | 2025.05.03 |
[코딩테스트] 백준 1000번: A+B (Java) (0) | 2025.05.01 |
[코딩테스트] 백준 2557번: Hello World (Java) (0) | 2025.04.30 |