프로그래머스 - 행렬의 곱셈 (Level 2)

2023. 12. 23. 16:43코딩테스트 정리(자바)

728x90

1. int answer [][]={}; 
이건 초기화 되지 않은 빈 배열
길이가 0

 

 

2. 연산 결과 행렬의 크기 지정해 주기

-> 행은 arr1의 행 길이, 열은 arr2의 열 길이

 

 

3. i는 arr1의 열 길 이이면서 arr2의 행길이이다.

-> 따라서 i의 범위는 arr1의 열 길이로 잡던지 arr2의 행 길이로 잡아야 한다.

class 행렬의_곱셈 {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int[][] answer = new int[arr1.length][arr2[0].length];

        for(int y=0;y<arr1.length;y++){
            for(int x=0;x<arr2[0].length;x++){
                for(int i=0;i<arr1[0].length;i++){
                    //여기 i의 범위를 arr2[0].length로 잡아서 계속 틀림
                    answer[y][x]+=arr1[y][i]*arr2[i][x];
                }
            }
        }
        return answer;
    }
}

 

* Arrays.deepToString(arr)

-> 다차원 배열을 String 형식으로 반환한다.

Systems.out.println( Arrays.deepToString(arr));

이런식으로 출력하면 다차원의 원소를 쉽게 확인할 수 있다

728x90