프로그래머스 Lv2 - 행렬의 곱셈

이윤택·2022년 8월 10일
0

알고리즘

목록 보기
3/22

https://school.programmers.co.kr/learn/courses/30/lessons/12949

문제 설명

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

제한 조건

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

입출력 예

문제풀이

포인트

  • m x n 행렬은 n x m의 행렬과 곱셈을 할 수 있고, 그 결과는 m x m으로 나타난다
  • 그러므로 m x m 2차원 행렬 생성 필요
  • 2차원 행렬이므로 반복문을 2번 쓸 것 같지만, 원소의 곱을 한 결과 반복문이 더 필요하다
def solution(arr1, arr2):
    # arr1, arr2 는 각자 2차원 행렬
    # 곱할 수 있는 배열만 주어짐
    result = [[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])):
            total = 0
            for k in range(len(arr1[0])):
                result[i][j] += (arr1[i][k] * arr2[k][j])
    return result
profile
데이터 엔지니어로 전향중인 백엔드 개발자입니다

0개의 댓글