문제 링크 : https://www.acmicpc.net/problem/2738

1. 요구 사항 이해
시간, 메모리 제한 : 1초 / 128 MB
두 행렬 A와 B가 주어졌을 때, 두 행렬을 더하는 프로그램을 작성.
각 행렬의 크기는 N x M이며, N과 M은 100 이하.
각 행렬의 원소는 절댓값이 100 이하인 정수.
프로그램은 행렬 A와 B의 원소를 더한 결과를 출력.
2. 설계/검증
복잡도
| 시간 복잡도 | 최악의 경우 | 공간 복잡도 | 
| O(N * M) | O(N * M) | 
두 행렬의 모든 원소를 순회하면서 덧셈을 수행하기 때문에 각 원소에 대해 O(N*M) 시간 복잡도가 소요됩니다. 시간 복잡도는 O(N * M)
입력 행렬 A와 B, 그리고 결과 행렬 C를 저장하기 위해 각각 N * M 크기의 배열이 필요합니다. 공간 복잡도는 O(N * M)
3. 정상 코드
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        // 입력을 위한 객체 생성
        Scanner scan = new Scanner(System.in);
        // 행렬의 크기 입력
        int N = scan.nextInt();
        int M = scan.nextInt();
        // 유효성 검사
        if (N < 1 || N > 100 || M < 1 || M > 100) {
            System.out.println("N과 M은 100보다 작거나 같다");
            return;
        }
        // 행렬 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] = scan.nextInt();
                // 유효성 검사
                if (Math.abs(A[i][j]) > 100) {
                    System.out.println("행렬의 원소는 절댓값이 100보다 작거나 같은 정수");
                    return;
                }
            }
        }
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < M; j++) {
                B[i][j] = scan.nextInt();
                // 유효성 검사
                if (Math.abs(B[i][j]) > 100) {
                    System.out.println("행렬 원소의 절댓값은 100 이하여야 합니다.");
                    return;
                }
            }
        }
        // 행렬 A,B 원소를 합한 결과 출력
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < M; j++) {
                System.out.print(A[i][j] + B[i][j] + " ");
            }
            System.out.println();
        }
        scan.close();
    }
}
'◖코딩 테스트◗▬▬▬▬▬▬▬▬▬ > 백준' 카테고리의 다른 글
| [백준] ✔️10798 세로읽기 (설명/코드/정답) (0) | 2024.08.17 | 
|---|---|
| [백준] 2566 최댓값 (설명/코드/정답) (0) | 2024.08.17 | 
| [백준] ✔️1546 평균 (설명/코드/정답) (0) | 2024.08.12 | 
| [백준] ✔️10811 바구니 뒤집기 (설명/코드/정답) (0) | 2024.08.12 | 
| [백준] ✔️3052 나머지 (설명/코드/정답) (0) | 2024.08.11 |