Algorithm/Baekjoon

[백준] 11022번 : A + B - 8 - Java

unknownomad 2022. 2. 22. 11:16

https://www.acmicpc.net/problem/11022

 

11022번: A+B - 8

각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다.

www.acmicpc.net



참고 유형

https://unknownomad.tistory.com/99

 

[백준] 11021번 : A + B - 7 - Java

https://www.acmicpc.net/problem/11021 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. www.acmicpc.net 구현 방법 입력 Scanner B..

unknownomad.tistory.com


구현 방법

입력

  • Scanner
  • BufferedReader + StringTokenizer / String.charAt()
    * 자료형 타입 주의!
    * st.nextToken(): 문자열 반환 ➡ Integer.parseInt()로 int형으로 변환시켜야 함

출력

  • System.out.println()
  • BufferedWriter
    * BufferedWriter.write(): 단독으로 int형 값만 넣으면 아스키 코드값으로 인식되기에 다른 문자가 출력됨
    ➡ 반드시 문자열과 int형을 함께 넣어야 int값 제대로 출력
  • StringBuilder

풀이

1. Scanner + System.out.println()

import java.util.Scanner;

public class Main {
    public static void main(String args[]) {

        Scanner in = new Scanner(System.in);
        int T = in.nextInt();
        
        for (int i = 1; i <= T; i++) {
            int A = in.nextInt();
            int B = in.nextInt();

            System.out.println("Case #" + i + ": " + A + " + " + B + " = " + (A + B));
        }
        in.close();
    }
}

2. BufferedReader + StringTokenizer + System.out.println()

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.io.IOException;
 
public class Main {
    public static void main(String args[]) throws IOException {
 
        BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
		
        int T = Integer.parseInt(br.readLine());
        int A;
        int B;
 
        StringTokenizer st;
        for (int i = 1; i <= T; i++) {
            st = new StringTokenizer(br.readLine()," ");
            A = Integer.parseInt(st.nextToken());
            B = Integer.parseInt(st.nextToken());
            
            System.out.println("Case #" + i + ": " + A + " + " + B + " = " + (A + B));
        }
        br.close();
    }
}

 

3. BufferedReader + StringTokenizer + BufferedWriter

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.io.IOException;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
 
public class Main {
    public static void main(String args[]) throws IOException {
 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
        int T = Integer.parseInt(br.readLine());
        int A;
        int B;
 
        StringTokenizer st;
        for (int i = 1; i <= T; i++) {
            st = new StringTokenizer(br.readLine()," ");
            A = Integer.parseInt(st.nextToken());
            B = Integer.parseInt(st.nextToken());
            
            //단독으로 int형 값만 넣으면 아스키 코드값으로 인식되기에 다른 문자가 출력됨
            //반드시 문자열과 int형을 함께 넣어야 int값 제대로 출력
            bw.write("Case #" + i + ": ");
            bw.write(A + " + " + B + " = ");
            bw.write((A + B) + "\n");
        }
        br.close();
        bw.flush();
        bw.close();
    }
}

 

4. BufferedReader + StringTokenizer + StringBuilder

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.io.IOException;
 
public class Main {
    public static void main(String args[]) throws IOException {

        BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
		
        int T = Integer.parseInt(br.readLine());
        int A;
        int B;
 
        StringBuilder sb = new StringBuilder();
        StringTokenizer st;
        
        for (int i = 1; i <= T; i++) {
            st = new StringTokenizer(br.readLine()," ");
            A = Integer.parseInt(st.nextToken());
            B = Integer.parseInt(st.nextToken());
            
            //출력할 문자에 여러 타입이 섞이면 타입 검사량 및 처리 시간 증가
            //append로 나눠주기
            sb.append("Case #" + i + ": ").append(A + " + " + B + " = " + (A + B)).append("\n");
        }
        br.close();
        System.out.println(sb);
    }
}

5. BufferedReader + String.charAt() + StringBuilder

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
 
public class Main {
    public static void main(String args[]) throws IOException {
 
        BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        
        int T = Integer.parseInt(br.readLine());
        for (int i = 1; i <= T; i++) {
            String str = br.readLine();
            int A = str.charAt(0) - '0';
            int B = str.charAt(2) - '0';
            
            sb.append("Case #").append(i).append(": ").append(A)
            .append(" + ").append(B).append(" = ").append(A + B).append("\n");
        }
        System.out.println(sb);
    }
}

성능

  • BufferedReader > Scanner
  • BufferedWriter / StringBuilder > System.out.println()

 


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