* 행렬의 곱셈 참고 자료 *
https://mathbang.net/562?category=432667
행렬의 곱셈, 행렬의 거듭제곱
행렬의 곱셈은 행렬의 실수배에 비하면 훨씬 어려워요. 행렬을 곱할 수 있는 조건이 있어 이 조건을 만족하지 않으면 곱셈을 하지 못하는 경우도 있어요. 게다가 계산방식도 매우 까다롭죠. 도
mathbang.net
↓ ↓ ↓
→ [2, 3, 2] [5, 4, 3]
→ [4, 2, 4] [2, 4, 1]
→ [3, 1, 4] [3, 1, 1]
arr1[0][0] * arr2[0][0]
arr1[0][1] * arr2[1][0] 더한 게 answer[0][0] = 22
arr1[0][2] * arr2[2][0]
arr1[0][0] * arr2[0][1]
arr1[0][1] * arr2[1][1] 더한 게 answer[0][1] = 22
arr1[0][2] * arr2[2][1]
arr1[0][0] * arr2[0][2]
arr1[0][1] * arr2[1][2] 더한 게 answer[0][2] = 11
arr1[0][2] * arr2[2][2]
arr1[1][0] * arr2[0][0]
arr1[1][1] * arr2[1][0] 더한 게 answer[0][1] = 36
arr1[1][2] * arr2[2][0]
....
arr1[2][0] * arr2[0][2]
arr1[2][1] * arr2[1][2] 더한 게 answer[2][2] = 14
arr1[2][2] * arr2[2][2]
def solution(arr1, arr2):
# arr2[0] 이 아닌 arr1[0] 으로 초기화시키면 런타임 에러
answer = [[0]*len(arr2[0]) for _ in range(len(arr1))]
# i : arr1 행 개수만큼 도는 인덱스
for i in range(len(arr1)) :
# j : arr2 한 행 안에 들어있는 원소의 개수 (arr2 열의 개수)
for j in range(len(arr2[0])) :
# k : arr1 한 행 안에 들어있는 원소의 개수 (arr2 행의 개수)
for k in range(len(arr1[0])) :
answer[i][j] += arr1[i][k] * arr2[k][j]
return answer
'알고리즘' 카테고리의 다른 글
[프로그래머스 Lv1 - 2021 카카오 채용연계형 인턴십] 숫자 문자열과 영단어 (Python) (0) | 2022.06.30 |
---|---|
[프로그래머스 Lv1 - 2019 KAKAO BLIND RECRUITMENT] 실패율 (Python) (0) | 2022.06.30 |
[프로그래머스 Lv1 - 2021 KAKAO BLIND RECRUITMENT] 신규 아이디 추천 (Python) (0) | 2022.06.30 |
[프로그래머스 Lv1 - 2022 KAKAO BLIND RECRUITMENT] 신고 결과 받기 (Python) (0) | 2022.06.28 |
[프로그래머스 Lv1] K번째 수 (Python) (0) | 2022.06.27 |