Skip to content

Latest commit

 

History

History
35 lines (26 loc) · 1.58 KB

풀이_행렬의곱셈.md

File metadata and controls

35 lines (26 loc) · 1.58 KB

🐡 프로그래머스 행렬의 곱셈

  • Date : 2021.02.14(일)
  • Time : 60분

문제

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

  • 제한사항

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

코드 풀이

: 먼저 행렬의 곱셈이라는 걸 학교다닐 때 배웠지만 기억이 안나서 다시 공부를 하느라 오래걸렸다. 사실 이해가 잘 되지 않았다.

스크린샷 2021-02-14 오후 2 47 57

제일 이해가 안갔던 부분은 그래서 결과물 AB 행렬의 크기는 어떻게 생성되는가? 였을 때 len(A행렬) * len(B행렬[0]) 로 완성된다.

answer = [[0 for col in range(len(arr2[0]))] for row in range(len(arr1))]

이 부분을 계속 이해를 못해서 어려웠다. 그리고 AB 행렬에 값을 넣을 때( = Answer) Answer[n][m] 이라고 생각했을 때 n을 A행렬의 기준으로 잡고, m을 B행렬의 기준으로 잡아주었다.

    for i in range(len(answer)):
        for j in range(len(answer[0])):
            for t in range(len(arr2)):
                answer[i][j] += arr1[i][t] * arr2[t][j]

: 그래서 A행렬과 B행렬의 값을 곱한 값을 answer에 쌓아주었다.