-
프로그래머스 Lv.2) 행렬의 곱셈알고리즘/프로그래머스 2020. 5. 21. 16:48반응형
행렬의 곱셈
코딩테스트 연습 - 행렬의 곱셈
[[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]]
programmers.co.kr
풀이
행렬의 곱셈에 대해 배열의 곱셈이라고 이해하고 문제이해를 5분정도 못했다... ㅎㅎㅎㅎ
아무튼 행렬의 곱셈을 구글링해서 곱셈법을 다시 배웠다.. ㅠㅠ
1. 배열 arr1과 arr2를 통해 답이되는 answer 배열을 만들어 준다.
1-1. 이때 크기는 arr1의 행, arr2의 열이 된다. (행렬의 연산 특징)
2. 각각 배열의 idx에 대해 행렬 곱셈식을 구해 더해준다.
코드
class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.length][arr2[0].length]; for(int i=0; i<answer.length; i++) { // 행 for(int j=0; j<answer[i].length; j++) { // 열 //answer[i][j] = arr1은 행이 i, arr2는 열이 j, 움직이는거는 둘이 공통되는 부분의 길이 for(int idx =0; idx<arr1[i].length; idx++) { answer[i][j] += arr1[i][idx] * arr2[idx][j]; } } } return answer; } }
반응형'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 Lv.2) 예상 대진표 (0) 2020.05.22 프로그래머스 Lv.2) 숫자의 표현 (0) 2020.05.21 프로그래머스 Lv.2) 최댓값과 최솟값 (0) 2020.05.21 프로그래머스 Lv.2) 피보나치 수 (0) 2020.05.21 프로그래머스 Lv.2) 올바른 괄호 짝지어 제거하기 (0) 2020.05.21