[BAEKJOON] 반복문 11021번 - A+B (7)

밍챠코·2024년 3월 25일
0

BAEKJOON

목록 보기
25/38

📝[11021]

[Java]

1. Scanner 이용

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        int T = sc.nextInt();
        
        for(int i=1; i<=T; i++){
            int A = sc.nextInt();
            int B = sc.nextInt();
            
            System.out.println("Case #" + i + ": " + (A + B));
        }
        
        sc.close();
    }
}

※ 숫자 A와 B를 더할 때, 문자열로 취급되어서 이어진 결과가 출력되지 않도록 괄호를 사용하여 연산의 우선순위를 명시해야 함!

2. BufferedReader 이용

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

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());
        
        for(int i=1; i<=T; i++){
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            int A = Integer.parseInt(st.nextToken());
            int B = Integer.parseInt(st.nextToken());
            
            System.out.println("Case #" + i + ": " + (A + B));
        }
        br.close();
    }
}

3. BufferedReader/StringBuilder 이용

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

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());
        StringBuilder sb = new StringBuilder();
        
        for(int i=1; i<=T; i++){
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            int A = Integer.parseInt(st.nextToken());
            int B = Integer.parseInt(st.nextToken());
            
            sb.append("Case #").append(i).append(": ").append(A + B).append("\n");
        	//sb.append("Case #" + i + ": " + (A + B) + "\n");
        }
        System.out.print(sb);
        
        br.close();
    }
}

💡 append 메서드를 분리하여 사용 시 성능이 더 좋아짐, 출력할 문자에 여러 타입이 섞여 있으면 일일이 타입 검사를 실시하므로 시간이 더 걸릴 수밖에 없음

4. BufferedReader/BufferedWriter 이용

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

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());
        
        for(int i=1; i<=T; i++){
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            int A = Integer.parseInt(st.nextToken());
            int B = Integer.parseInt(st.nextToken());
            
            bw.write("Case #" + i + ": " + (A + B) + "\n");
        }
        br.close();
        
        bw.flush();
        bw.close();
    }
}

※ 속도 비교
BufferedReader + StringBuilder(124ms) < BufferedReader 단독(160ms) < BufferedReader + BufferedWriter(164ms) < Scanner(264ms)


[Javascript]

💡 결과값을 하나의 객체에 담아 한번에 출력

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split("\n");
const T = Number(input[0]);

let str = "";
for(let i=1; i<=T; i++){
    const [A, B] = input[i].split(" ").map(Number);
    str += "Case #" + i + ": " + (A + B) + "\n";
}
console.log(str);

💡 console.log() 반복 호출

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split("\n");
const T = Number(input[0]);

for(let i=1; i<=T; i++){
    const [A, B] = input[i].split(" ").map(Number);
    console.log("Case #" + i + ": " + (A + B));
}

💡 벡틱 사용

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split("\n");
const T = Number(input[0]);

for(let i=1; i<=T; i++){
    const [A, B] = input[i].split(" ").map(Number);
    console.log(`Case #${i}: ${A+B}`);
}

[Python]

T = int(input())

for i in range(1, T+1):
    A, B = map(int, input().split())
    print("Case #", i, ": ", A+B, sep="")

0개의 댓글