행렬의 곱셈

2023. 6. 4. 14:23·프로그래머스
목차
  1. 문제 설명
  2. 제한사항
  3. 입출력 예
  4. 입출력 예 설명
  5. 내 풀이
  6. 해설

문제 설명

2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.

제한사항

  • 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
  • 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
  • 곱할 수 있는 배열만 주어집니다.

입출력 예

입출력 예 설명

내 풀이

function solution(arr1, arr2) {
    let answer=[];
    for(let i=0; i<arr1.length; i++){
        let sumArray=[];
        for(let j=0; j<arr2[0].length; j++){
            let sum=0;
            for(let k=0; k<arr2.length; k++){
                sum += arr1[i][k]*arr2[k][j]
            }
            sumArray.push(sum);
        }
        answer.push(sumArray)
    }
    return answer;
}

해설

행렬의 곱셈(matrix multiplication)은 여타 행렬의 연산과 같이 '크기가 맞는' 경우에만 할 수 있는데, 행렬의 곱셈에서 '크기가 맞는다'는 것은 앞 행렬의 열의 수와 뒷 행렬의 행의 수가 같다는 것이다. 이 조건이 만족되어야 행렬의 곱셈 이용이 가능하다.
곱셈 결과 나오는 행렬의 크기는 (앞 행렬의 행의 수) × (뒤 행렬의 열의 수) 가 된다.

행렬의 크기 계산 예) 
arr1*arr2[0,0] = (arr1[0,0] * arr2[0,0]) + (arr1[0,1] * arr2[1,0]) + (arr1[0,2] * arr2[2,0]))

행렬의 곱셈을 하기 위해서 B와 C가 같아야하고 곱셈결과 값은 A*D이다.

 

3중 for문을 사용하였는데

i는 A (= arr1.length),

j는 arr1 * arr2의 열의 갯수,(=arr2[0].length)

k는 arr1 * arr2의 한 칸의 값을 구하기 위해 반복해야 하는 수이다.

 

 

저작자표시 비영리 (새창열림)

'프로그래머스' 카테고리의 다른 글

[1차] 비밀지도(2018 KAKAO BLIND RECRUITMENT) - JS  (0) 2023.07.22
튜플  (1) 2023.06.04
두 개 뽑아서 더하기  (0) 2023.05.22
숫자의 표현  (0) 2023.05.21
최솟값 만들기  (1) 2023.05.21
  1. 문제 설명
  2. 제한사항
  3. 입출력 예
  4. 입출력 예 설명
  5. 내 풀이
  6. 해설
'프로그래머스' 카테고리의 다른 글
  • [1차] 비밀지도(2018 KAKAO BLIND RECRUITMENT) - JS
  • 튜플
  • 두 개 뽑아서 더하기
  • 숫자의 표현
king_hd
king_hd
웹 개발 공부를 위한 블로그입니다.
king_hd
웹 개발 기록
king_hd
전체
오늘
어제
  • 분류 전체보기
    • HTML
    • CSS
    • JS
    • Typescript
    • React
    • nodejs
    • Redux
    • Git
    • 오류모음
    • Webpack
    • 자료구조
    • 네트워크
    • Electron
    • 배포
    • Docker
    • 프로그래머스

블로그 메뉴

  • 홈

링크

공지사항

인기 글

태그

mysqld: can't open file: 'mysql.ibd' (errno: 0 - )
인증서 자동갱신
Redux-saga
next.js
4차산업혁명동아리
웹퍼블리셔
리덕스
let
TAVE
const
웹개발
JavaScript
docker
Redux
TypeScript
webpack
자바스크립트
프론트엔드
docker mysql workbench 연동하는 법
react
백엔드
리덕스사가
타입스크립트
propertykey
프로그래머스
Hook
코딩테스트
ec2에 docker 설치
https 인증서 발급
env파일 환경변수 인식

최근 댓글

최근 글

hELLO· Designed By정상우.v4.6.0
king_hd
행렬의 곱셈
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.