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 타입[길이];
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();
}
}
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) 클래스, 즉 기존 객체를 변경할 수 없기 때문에 문자열 연결 시 새로운 객체를 생성해야 함
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);
}
T = int(input())
for i in range(T) : # for i in range(1, T+1) :
A, B = map(int, input().split())
print(A + B)