행렬의 덧셈

SaGo_MunGcci·2022년 7월 20일
0
  • 분석 완료

  • 2차원 배열의 특징!

    1. 해결 포인트 : int[][] arr = new int[배열 안의 배열 개수][배열안의 배열안의 원소의 갯수]; 이다.

  • 참고 : https://keichee.tistory.com/423

  • 아래는 내가 작성한 코드인데 2차원 배열만 가능하다 1차원은 실행X

public class Q10 {
    public int[][] solutionQ10(int[][] arr1, int[][] arr2) {
        int[][] answer = new int[arr1.length][arr2.length];

        ArrayList<Integer> arrayList_arr1 = new ArrayList<>();
        ArrayList<Integer> arrayList_arr2 = new ArrayList<>();
        ArrayList<Integer> arrayList_arr3 = new ArrayList<>();



            int[] arr_1 = new int[arr1.length + arr2.length];


            int some = 0;

            for (int i = 0; i < arr1.length; i++) {

                for (int j = 0; j < arr2.length; j++) {

                    some = arr1[i][j];

                    arrayList_arr1.add(some);

                    System.out.println(some);

                }
            }

            System.out.println(arrayList_arr1);

            for (int i = 0; i < arr2.length; i++) {
                for (int j = 0; j < arr2.length; j++) {

                    some = arr2[i][j];

                    arrayList_arr2.add(some);

                }

            }

            System.out.println(arrayList_arr2);


            for (int i = 0; i < arrayList_arr1.size(); i++) {

                int tempInt = arrayList_arr1.get(i);
                int tempInt1 = arrayList_arr2.get(i);
                int suum = tempInt + tempInt1;

                System.out.println(tempInt + tempInt1);


                arrayList_arr3.add(tempInt + tempInt1);

                arr_1[i] = suum;

            }
            int count = 0;
            for (int i = 0; i < arr1.length; i++) {
                for (int j = 0; j < arr2.length; j++) {

                    answer[i][j] = arr_1[count];
                    count++;

                }

            }

            System.out.println(Arrays.deepToString(answer));

        return answer;

    }
}
  • 해설. 팀원님 답안
  • 나는 2차원 배열만 해결했고 1,3차원은 제대로 결과값이 안나옴.
/////답안
/////원리는 가장 첫번째 문제 <-링크 와 굉장히 비슷. 단지 * 대신에 행렬의 형태를 넣은것 뿐이다.
class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
    	
        
        // {{1,2},{2,3}}; == arr1
        // {{3,4},{5,6}}; == arr2
        // int[][] arr = new int[배열 안의 배열 개수][배열안의 배열안의 원소의 갯수];        
        
       int[][] arr = new int[arr1.length][arr1[0].length];
        for(int i=0; i<arr1.length; i++) {
            for(int j=0; j<arr1[0].length; j++) {
                arr[i][j] = arr1[i][j] + arr2[i][j];
            }
        }


        return arr;
    }
}
profile
이리저리 생각만 많은 사고뭉치입니다.

0개의 댓글