문제

(백준) 2738번 '행렬 덧셈'

서윤-정 2023. 8. 8. 11:42

 

 

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        // 행렬의 크기 N,M 입력 받기
        int N = sc.nextInt();
        int M = sc.nextInt();
  
        // 행렬 A와 B 선언 및 입력 받기
        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();
            }
        }
        
        // 두 행렬을 더한 결과 계산 및 출력
        int[][] result = new int[N][M];
        for(int i = 0; i < N; i++){
            for(int j = 0; j < M; j++){
                result[i][j] = A[i][j] + B[i][j];
            }
        }
        
        for(int i = 0; i < N; i++){
            for(int j = 0; j < M; j++){
                System.out.print(result[i][j] + " ");
            }
            System.out.println();
        }
    }
}

 

 

 

 

✔️ 2차원 배열이란?

 

행과 열로 구성된 2차원 구조의 배열을 말한다.

일반적으로 행렬(Matrix)이라고 불리며, 2차원 배열은 행과 열의 인덱스를 사용하여 각 요소에 접근할 수 있다.

 

2차원 배열은 다음과 같이 행과 열의 크기로 구성된다.

 

int[][] arr = new int[행의 크기][열의 크기];

 

예를 들어, 3 X 3 크기의 2차원 배열을 생성하려면 다음과 같다.

 

int[][] arr = new int[3][3];

 

이렇게 생성된 arr 은 3개의 행과 3개의 열로 구성된 2차원 배열이 된다.

각 요소에는 행과 열의 인덱스를 사용하여 접근할 수 있다.

 

2차원 배열은 이차원적인 데이터를 표현할 때 사용된다.

예를 들어, 행렬이나 이미지, 게임판 등은 2차원 배열로 표현할 수 있다.

2차원 배열은 이중 반복문을 사용하여 모든 요소를 순회하고 처리하는데에도 유용하게 사용된다.

 

아래 예시 코드는 3 X 4 크기의 2차원 배열을 생성하고 접근하는 방법이다.

public class ThreeByFourArray {
    public static void main(String[] args) {
        int[][] arr = new int[3][4];

        // 배열 초기화
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 4; j++) {
                arr[i][j] = i * 4 + j;
            }
        }

        // 배열 요소 출력
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
}

 

위 코드를 실행하면 다음과 같은 결과가 출력된다.

    열

  0 1 2 3 
      4 5 6 7 
      8 9 10 11

 

 

 

 

 

 

✔️ 일반적으로 행렬은 다음과 같이 나타낼 수 있다.

 

A = [ a11  a12  a13  ...  a1n ]
    [ a21  a22  a23  ...  a2n ]
    [ a31  a32  a33  ...  a3n ]
    [ ...  ...  ...  ...  ... ]
    [ am1  am2  am3  ...  amn ]

 

여기서 aij 는 행렬 A의 i번째 행과 j번째 열의 원소를 나타낸다.

예를 들어, a12는 A의 1번째 행과 2번째 열의 원소를 의미한다.

 

'문제' 카테고리의 다른 글

(백준) 2566번 '최댓값'  (0) 2023.08.08
(백준) 2908번 '상수'  (0) 2023.08.06
(백준) 11718번 '그대로 출력하기'  (0) 2023.08.05
(백준) 1152번 '단어의 개수'  (0) 2023.08.02