코딩테스트/알고리즘 문제

[백준] 10869 사칙연산 - Java

glorypang 2025. 3. 19. 23:39
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

 


🔄 개선 가능성

  1. Scanner (가장 기본적인 입력 방법)
    • 입력 속도: 느림
     	    Scanner sc = new Scanner(System.in);
    
  2. BufferedReader(빠른 입력)
    • 입력 속도: 빠름
    • 사용법: 문자열로 입력받고 직접 변환 필요 + 예외처리 필요
    public static void main(String[] args) throws IOException {
    	BufferedReader br = new BufferedReader(new InputStreamReader(Syste));
    	int num = Integer.parseInt(br.readLine());  // 정수 입력 후 변환
  3. StringTokenizer
    • 입력 속도: 빠름
    • 사용법: 여러 개의 값을 공백으로 구분해서 받을 떄 유용
    public static void main(String[] args) throws IOException 
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	StringTokenizer st = new StringTokenizer(br.readLine());
  4. 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