반응형
1. Scanner를 이용한 방법
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
int[][] A = new int[N][M];
int[][] B = new int[N][M];
for(int i=0; i<N; i++){
for(int j=0; j<M; j++){
A[i][j] = sc.nextInt();
}
}
for(int i=0; i<N; i++){
for(int j=0; j<M; j++){
B[i][j] = sc.nextInt();
}
}
for(int i=0; i<N; i++){
for(int j=0; j<M; j++){
A[i][j] += B[i][j];
System.out.print(A[i][j]+ " ");
}
System.out.println();
}
sc.close();
}
}
나름 코드를 줄여보겠다고 A배열과 B배열을 한 번에 입력받으려고 했더니 결과값이 이상하게 나와서 결국 분리했다...
2. BufferedReader를 이용한 방법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[][] A = new int[N][M];
int[][] B = new int[N][M];
for(int i=0; i<N; i++){
StringTokenizer st1 = new StringTokenizer(br.readLine(), " ");
for(int j=0; j<M; j++){
A[i][j] = Integer.parseInt(st1.nextToken());
}
}
for(int i=0; i<N; i++){
StringTokenizer st2 = new StringTokenizer(br.readLine(), " ");
for(int j=0; j<M; j++){
B[i][j] = Integer.parseInt(st2.nextToken());
}
}
for(int i=0; i<N; i++){
for(int j=0; j<M; j++){
A[i][j] += B[i][j];
System.out.print(A[i][j]+ " ");
}
System.out.println();
}
br.close();
}
}
StringTokenizer를 왜 계속 다시 선언해주어야되는가에 대해 의문점이 많았는데 찾아보니 한 번 쓰면 재사용이 불가해서 새로 객체를 만들어주어야되는 거였다...
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 10798 - 세로 읽기 (JAVA/ 자바) (0) | 2024.03.18 |
---|---|
[백준] 2566 - 최댓값 (JAVA/ 자바) (0) | 2024.03.17 |
[백준] 25206 - 너의 평점은 (JAVA/ 자바) (0) | 2024.03.15 |
[백준] 1316 - 그룹 단어 체커 (JAVA/ 자바) (0) | 2024.03.13 |
[백준]2941 - 크로아티아 알파벳 (JAVA/ 자바) (0) | 2024.03.08 |