본문 바로가기

알고리즘/백준

[백준] 2738 - 행렬 덧셈 (JAVA/ 자바)

반응형

2738번 문제

 

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를 왜 계속 다시 선언해주어야되는가에 대해 의문점이 많았는데 찾아보니 한 번 쓰면 재사용이 불가해서 새로 객체를 만들어주어야되는 거였다...

 

출처 : https://dev-gorany.tistory.com/54

반응형