728x90
반응형
SMALL
📌 문제 정보
- 출처: 문제 링크
- 난이도: ⭐
- 문제 유형: 입출력과 사칙연산
- 사용 언어: Java
🔍 문제 설명
두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오.
💡 풀이 노트
- `throws IOException` → `BufferedReader` 사용 시 예외 처리를 필수로 해야 함
- `System.in`: 표준 입력을 의미 (키보드 입력)
- `InputStreamReader`: 바이트 스트림을 문자 스트림으로 변환
- `BufferedReader`: 입력 속도를 높이기 위해 버퍼를 사용하는 입력 방식 → `Scanner`보다 빠름
- `br.readLine()` → 한 줄 입력 받음 (문자열 형태)
- `new StringTokenizer(...)` → 입력된 문자열을 공백 단위로 분리
🚀 코드 (Java)
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
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);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);
System.out.println(a%b);
}
}
🖥 실행 결과
입력:7 3
출력:
10
4
21
2
1
🔄 개선 가능성
- Scanner (가장 기본적인 입력 방법)
- 입력 속도: 느림
Scanner sc = new Scanner(System.in); - BufferedReader(빠른 입력)
- 입력 속도: 빠름
- 사용법: 문자열로 입력받고 직접 변환 필요 + 예외처리 필요
public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(Syste)); int num = Integer.parseInt(br.readLine()); // 정수 입력 후 변환 - StringTokenizer
- 입력 속도: 빠름
- 사용법: 여러 개의 값을 공백으로 구분해서 받을 떄 유용
public static void main(String[] args) throws IOException BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); - StreamTokenizer(대량 데이터 입력 시)
- 입력 속도: 매우 빠름
- 사용법: 반복적으로 데이터 읽을 때 편리
public static void main(String[] args) throws IOException {
StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
st.nextToken();
일반적으로 코딩테스트 시, 2+3번의 방법이 가장 효과적
📌 깃허브 코드 저장소: https://github.com/glorypang/CodingTest
728x90
반응형
LIST