알고리즘

[백준] 2738번 : 행렬 덧셈 _ JAVA ( 주석 설명 ) 본문

백준 - JAVA/2차원 배열

[백준] 2738번 : 행렬 덧셈 _ JAVA ( 주석 설명 )

wch_s 2023. 2. 3. 23:05

1번

→ 2차원 배열을 생성한 후, 덧셈 진행

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[][] result = new int [N][M]; //두 행렬을 더한 값을 저장할 배열

        int twice = 2; //N,M 두 행렬을 입력받아야 하므로 두 번 반복을 한다.
        while(twice>0) {
            --twice;

            for (int i = 0; i < N; ++i) {
                st = new StringTokenizer(br.readLine()); //StringTokenizer 객체는 소모적 객체이므로 개행마다 다시 생성해주도록 한다.
                for (int j = 0; j < M; ++j) {
                    result[i][j] += Integer.parseInt(st.nextToken()); //입력받는 즉시, result 배열에 입력값을 더한다.
                }
            }
        }


        for(int i=0;i<N;++i){
            for(int j=0;j<M;++j){
                System.out.print(result[i][j]+ " "); //두 행렬을 덧셈한 값 출력한다.
            }
            System.out.println(); //열 마다 문장 개행을 한다.
        }
    }
}