알고리즘

행렬의 곱

킹왕짱지지 2025. 2. 24. 15:54

문제

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

제한 조건

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

입출력 예

내 풀이

def solution(arr1, arr2):
	# 답으로 낼 answer의 리스트 만들기
    anser = [[0] * len(arr2[0]) for _ in range(len(arr1))]
    
     #arr1의 행(hor)이랑 열(ver) 갯수를 알아보자
    hor=len(arr1)
    ver=len(arr2[0])
     
    for i in range(hor): #행 번호 할당
        for j in range(ver): #열 번호 할당
            tmp=0
            #arr1의 행 번호 전체랑 arr2의 열 번호 전체가 곱해지고 더해진다.
            for k in range(len(arr2)):
                # print(arr1[i][k],"*",arr2[k][j])
                tmp+=arr1[i][k]*arr2[k][j]
            answer[i][j]=tmp

    return answer

필요 개념

2차원 리스트 만들기

[[0] * k for _ in range(n)]