[BAEKJOON] 반복문 10950번 - A+B (3)

밍챠코·2024년 3월 20일
0

BAEKJOON

목록 보기
20/38

📝[10950]

[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();
        int arr[] = new int[T]; //배열 생성
        
        for(int i=0; i<T; i++){
            int A = sc.nextInt();
            int B = sc.nextInt();
            arr[i] = A + B; //i의 길이만큼 가지고 있는 배열에 A + B 한 값을 담아주기
        }
        
        for(int C : arr){ // C라는 변수에 arr 배열을 담아서 반복문으로 값 출력
            System.out.println(C);
        }
        
        sc.close();
    }
}
  • 출력 결과 동일

💡 new 연산자로 배열 생성

  • 값의 목록을 가지고 있지 않지만, 향후 값들을 저장할 배열을 미리 만들고 싶다면 new 연산자로 배열 객체를 생성할 수 있음

    타입[ ] 변수 = new 타입[길이];

💡 확장 for문

  • 배열 내의 모든 값을 반복하는 for문의 향상된 형태

    for (타입 변수명 : 배열 또는 컬렉션(반복 대상)) {
           // 실행 코드
    }

📛 처음 풀이한 방법

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=0; i<T; i++){
            int A = sc.nextInt();
            int B = sc.nextInt();
            
            System.out.println(A + B);
        }
        
        sc.close();
    }
}
  • 정답은 맞지만, 출력 결과가 동일하지 않음

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());
        
        StringBuilder sb = new StringBuilder();
        
        for(int i=0; i<T; i++){
            StringTokenizer st = new StringTokenizer(br.readLine(), " "); //입력을 정수 A와 B로 쪼개기 위해서 StringTokenizer 이용
            int A = Integer.parseInt(st.nextToken());
            int B = Integer.parseInt(st.nextToken());
            sb.append(A + B + "\n");
        }
        
        System.out.println(sb);
        
        br.close();
    }
}

💡 StringBuilder
: 문자열을 연결할 경우, 새로운 객체 생성이 아니라 기존 객체에 더하는 방식으로 추가 메모리 생성 없이 기존 문자열이 확장
→ 속도가 빠르며 상대적으로 부하가 적음, 성능 개선의 효과

💡 사용 방법

  • 선언
StringBuilder sb = new StringBuilder();
  • 문자열 추가 → .append() 메서드 사용
sb.append("ABCDE");
sb.append("F").append("G");

↔ String 클래스는 불변(Immutable) 클래스, 즉 기존 객체를 변경할 수 없기 때문에 문자열 연결 시 새로운 객체를 생성해야 함


[Javascript]

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

const T = Number(input[0]);

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

[Python]

T = int(input())

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

0개의 댓글