코딩테스트

백준 1000번 A+B

NellKiM 2025. 4. 7. 21:29

1.Scanner사용

import java.util.Scanner;

//Scanner사용
//입력을 간단히 할 수 있음.
public class Main1_1000 {
    public static void main(String[] args) {
        // Scanner 객체 생성
        Scanner sc = new Scanner(System.in);
        
        // 두 정수 A와 B 입력받기
        int A = sc.nextInt();
        int B = sc.nextInt();
        
        // A와 B의 합 출력
        System.out.println(A + B);
        
        // Scanner 객체 닫기
        sc.close();
    }
}


2.BufferedReader사용

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

//BufferedReader사용
//속도: BufferedReader는 Scanner보다 빠른 입출력을 제공합니다. 대량의 데이터 처리 시 유리합니다.
//메모리 사용 최적화: BufferedReader는 내부 버퍼를 사용하여 여러 번의 입력을 한 번에 처리합니다.
public class Main2_1000 {
    public static void main(String[] args) throws IOException {
        // BufferedReader 객체 생성 (InputStreamReader로 System.in 연결)
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        // 입력 받기 (문자열로 입력받고, 공백 기준으로 분리한 후 정수로 변환)
        String[] input = br.readLine().split(" ");
        
        int A = Integer.parseInt(input[0]); //Integer.parseInt("23") ==> 23
        int B = Integer.parseInt(input[1]);
        
        // A와 B의 합 출력
        System.out.println(A + B);
        
        // BufferedReader 객체 닫기
        br.close();
    }
}


3.BufferedReader , StringTokenizer 사용

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

//Buffered + StringTokenizer 사용
//속도: BufferedReader와 StringTokenizer를 조합하면, 빠르게 입력을 받고 효율적으로 처리할 수 있습니다.
//메모리 효율성: StringTokenizer는 구분자로 문자열을 나누고, 각 토큰을 하나씩 읽을 수 있기 때문에 메모리 사용이 효율적입니다.

public class Main3_1000 {
    public static void main(String[] args) throws IOException {
        // BufferedReader 객체 생성 (InputStreamReader로 System.in 연결)
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        // 입력받은 한 줄을 StringTokenizer로 분리
        StringTokenizer st = new StringTokenizer(br.readLine());
        
        // StringTokenizer로 분리된 값을 정수로 변환
        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());
        
        // A와 B의 합 출력
        System.out.println(A + B);
        
        // BufferedReader 객체 닫기
        br.close();
    }
}


4.BufferedReader, StringTokenizer, BufferedWriter 사용

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

//BufferedReader, StringTokenizer, BufferedWriter 사용
//입출력 속도: BufferedReader와 StringTokenizer는 빠른 입력을 처리하고, 
//BufferedWriter는 빠른 출력을 처리합니다. 이 조합은 입출력 성능을 최적화하는 데 유리합니다.
//메모리 효율성: StringTokenizer를 사용하면 공백을 기준으로 효율적으로 문자열을 분리할 수 있습니다.

public class Main4_1000 {
    public static void main(String[] args) throws IOException {
        // BufferedReader 객체 생성 (InputStreamReader로 System.in 연결)
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        // BufferedWriter 객체 생성 (OutputStreamWriter로 System.out 연결)
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        // 입력받은 한 줄을 StringTokenizer로 분리
        StringTokenizer st = new StringTokenizer(br.readLine());
        
        // StringTokenizer로 분리된 값을 정수로 변환
        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());
        
        // A와 B의 합을 BufferedWriter를 사용하여 출력
        bw.write(String.valueOf(A + B) + "\n");
        
        // BufferedWriter 객체를 닫아 출력 버퍼를 플러시
        bw.flush();
        
        // BufferedReader와 BufferedWriter 객체 닫기
        br.close();
        bw.close();
    }
}


5.BufferedReader, StringTokenizer, StringBuilder 사용

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


//BufferedReader, StringTokenizer, StringBuilder 사용
//속도: BufferedReader는 입력을 빠르게 처리하며, StringTokenizer는 문자열을 빠르게 분리합니다. 
//StringBuilder는 문자열을 효율적으로 결합하고 처리하는 데 유리합니다.

//메모리 효율성: StringBuilder를 사용하면 불필요한 문자열 객체 생성을 방지하여 메모리 효율성이 높아집니다.
public class Main5_1000 {
    public static void main(String[] args) throws IOException {
        // BufferedReader 객체 생성 (InputStreamReader로 System.in 연결)
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        // 입력받은 한 줄을 StringTokenizer로 분리
        StringTokenizer st = new StringTokenizer(br.readLine());
        
        // StringTokenizer로 분리된 값을 정수로 변환
        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());
        
        // StringBuilder를 사용하여 출력할 문자열 만들기
        StringBuilder sb = new StringBuilder();
        
        // A와 B의 합을 StringBuilder에 추가
        sb.append(A + B)
          .append('\n');
        
        // StringBuilder 내용을 출력
        System.out.print(sb.toString());
        
        // BufferedReader 객체 닫기
        br.close();
    }
}