-
[프로그래머스] 행렬의 곱셉Engineering WIKI/Programmers 2022. 5. 23. 16:33
코딩테스트 연습 - 행렬의 곱셈
[[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]]
programmers.co.kr
행렬의 곱셈, 행렬의 거듭제곱
행렬의 곱셈은 행렬의 실수배에 비하면 훨씬 어려워요. 행렬을 곱할 수 있는 조건이 있어 이 조건을 만족하지 않으면 곱셈을 하지 못하는 경우도 있어요. 게다가 계산방식도 매우 까다롭죠. 도
mathbang.net
다른 사람 풀이
def solution(arr1, arr2): answer = [[0 for _ in range(len(arr2[0]))] for _ in range(len(arr1))] for i in range(len(arr1)): for j in range(len(arr2[0])): for k in range(len(arr1[0])): answer[i][j] += (arr1[i][k] * arr2[k][j]) return answer
다른 사람 풀이 2
def productMatrix(X, Y): answer = [[sum(a*b for a, b in zip(X_row,Y_col)) for Y_col in zip(*Y)] for X_row in X] return answer # 아래는 테스트로 출력해 보기 위한 코드입니다. a = [[ 1, 2], [2, 3]]; b = [[ 3, 4], [5, 6]]; print("결과 : {}".format(productMatrix(a,b)));
Y : [[5, 4, 3], [2, 4, 1], [3, 1, 1]]
for Y_col in zip(*Y):
print(Y_col)
결과 : (5, 2, 3) (4, 4, 1) (3, 3, 1)
'Engineering WIKI > Programmers' 카테고리의 다른 글
[프로그래머스] 큰 수 만들기 (0) 2022.05.24 [프로그래머스] 스킬트리 (0) 2022.05.23 [프로그래머스] N개의 최소공배수 (0) 2022.05.23 [프로그래머스] JadenCase 문자열 만들기 (0) 2022.05.23 [프로그래머스] 피보나치 수 (0) 2022.05.17 [프로그래머스] 최솟값 만들기 (0) 2022.05.17 [프로그래머스] 최댓값과 최솟값 (0) 2022.05.17 [프로그래머스] 카펫 (0) 2022.05.17