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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

수학의 행렬의 곱셈을 구현하는 문제이다.

  • 행렬의 곱셈 : 두 행렬을 곱해서 새로운 행렬을 만드는 연산

 

def solution(arr1, arr2):
    r1 = len(arr1)      # arr1 의 행의 길이 M
    c1 = len(arr1[0])   # arr1 의 열의 길이 K
    r2 = len(arr2)      # arr2 의 행의 길이 K
    c2 = len(arr2[0])   # arr2 의 열의 길이 N
    
    # arr1(M*K) * arr2(K*N) = answer (M*N)
    answer = [[0] * c2 for _ in range(r1)]
    
    # 첫 번째 행렬 arr1의 각 행과 두 번째 행렬 arr2 의 각 열에 대해 
    for i in range(r1):
        for j in range(c2):
            for k in range(c1): # 두 행렬의 값을 곱해 결과 리스트에 더함
                answer[i][j] += arr1[i][k] * arr2[k][j]
    
    return answer

'개발 > 코딩테스트' 카테고리의 다른 글

[Softeer] 연탄 배달의 시작  (0) 2024.02.24
[프로그래머스] 캐릭터의 좌표  (0) 2024.02.23
[Softeer] 위험한 효도  (0) 2024.02.22
[Softeer] 근무 시간  (0) 2024.02.22
[프로그래머스] 모의고사  (0) 2024.02.22

+ Recent posts