- 문제 설명
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
- 제한 사항
- 입출력 예
- 접근법
이 문제의 핵심은 당연히 행렬의 곱셈 계산방법에 대해 알아야겠지만 더 중요한것은 곱셈이 가능한 조건이다.
A행렬(3행 2열) B행렬(2행 2열)일 경우 행렬의 곱셈이 가능하다
이유는 3X2 * 2X2로 표현했을때 A행렬의 열과 B행렬의 행의 값이 동일하다. 이런 경우 행렬의 곱셈이 가능하다.
문제 풀이에서는 저 부분을 리스트 값을 가져올 수 있도록
각각 좌표로 넣어야하며 A행렬의 행값과 B행렬의 열값이 다르기때문에 for문은 총 3개가 필요하다.
최종 풀이는 아래와 같다.
def solution(arr1, arr2):
answer = []
for i in range(len(arr1)):
temp_list = []
for j in range(len(arr2[0])):
temp = 0
for k in range(len(arr2)):
temp += arr1[i][k] * arr2[k][j]
temp_list.append(temp)
answer.append(temp_list)
return answer