티스토리 뷰

https://www.acmicpc.net/problem/2740

 

2740번: 행렬 곱셈

첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개

www.acmicpc.net

const fs = require('fs');
const input = fs.readFileSync("./dev/stdin").toString().trim().split("\n").map(v=>v.split(' ').map(x=>+x)); 


const A=[]; //첫번째 행렬
const B=[];  // 두번째 행렬
const C =[]; // 계산하기 좋게 두번째 행렬을 바꿔서 만들 행렬

//첫번째 행렬 정리
const [N,M] = input.shift();  
for(let i = 0; i<N; i++){
  A.push(input.shift());
}

//두번째 행렬 정리
const [K,L] = input.shift();
for(let i = 0; i<K; i++){
  B.push(input.shift());
}

//두번째 행렬 수정
 while(B[0].length>0){
   const temp = [];
   for(let i = 0; i<K;i++){
    temp.push(B[i].shift())
   }
   C.push(temp)
 }

 // 행렬의 곱셈
 const answer = [];
 for(let i = 0; i<N; i++){
  answer.push([])
   const X = A[i];
   for(let j = 0; j<L; j++){
     let sum = 0;
    const Y = C[j]
     for(let k = 0; k<K; k++){
      sum+=X[k]*Y[k];
     }
     answer[answer.length-1].push(sum)
   }
 }

 const result = answer.map(v=>v.join(' ')).join('\n')

 console.log(result)
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함