프로그래머스 #JavaScript - 행렬의 곱셈

SSO·2020년 2월 12일
0

프로그래머스 Lv2

목록 보기
31/46

문제

https://programmers.co.kr/learn/courses/30/lessons/12949

풀이

//행렬의 곱셈
function solution(arr1, arr2) {
    var answer = [];
    var row1 = arr1.length;
    var col1 = arr1[0].length;
    var col2 = arr2[0].length;

    for(var s=0; s<row1; s++){
    	answer.push([]);
    for(var x=0; x<col2; x++){
      answer[s].push(0);
    }
  }
  
  for(var i=0; i<row1; i++) { 
    for(var j=0; j<col2; j++) { 
      for(var k=0; k<col1; k++) { 
        answer[i][j] = answer[i][j] + arr1[i][k] * arr2[k][j];
				}
			}
		}
  
 
    
    return answer;
}

다른사람의 풀이

function solution(arr1, arr2) {
    return Array(arr1.length).fill()
      .map((r, i) => Array(arr2[0].length).fill()
           .map((v, j) => arr1[i].reduce((a, c, k) => a + c * arr2[k][j], 0)))
}

더 생각해보기

행렬 문제만 나오면 모르겠다.. 인덱스를 따지는 게 너무 어려움.
풀이 찾아보면 보통 map+map의 index로 해결
=> 결국 반복문으로 풀 수 있어야!
엄청..오래걸림

참고사항

프로그래머스 Lv1 행렬의 덧셈

profile
happy

0개의 댓글