본문 바로가기
*Algorithm/Programmers_Level2

[programmers] 프로그래머스 Level2 행렬의 곱셈(파이썬 Python)

by codinguser 2020. 11. 19.

 

프로그래머스
(주)그렙

 

[programmers] 프로그래머스 Level2 행렬의 곱셈

(파이썬 Python)

 

* 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제

 

 

 

1) 문제


프로그래머스 행렬의 곱셈

 

코딩테스트 연습 - 행렬의 곱셈

[[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

 

 

 

 

 

2) 풀이 과정


 

X

 

 

 

 

 

< < 사고 과정 > >


X

 

 

 

 

 

 

 

 

 

3) 코드


 

(1)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def solution(arr1, arr2):
    answer = []
    
    for i in range(len(arr1)):
        answer.append([])
        
        for j in range(len(arr2[0])):
            sum = 0
            
            for k in range(len(arr1[i])):
                sum += arr1[i][k] * arr2[k][j]
                
            answer[i].append(sum)
            
    return answer
cs

 

 

(2) Numpy 사용

1
2
3
4
5
6
7
8
9
import numpy as np
 
def solution(arr1, arr2):
    arr1 = np.array(arr1)
    arr2 = np.array(arr2)
    
    answer = np.dot(arr1,arr2)
    
    return answer.tolist()
cs

 

 

* 코테가 목적이라면 numpy 사용은 추천하지 않는다.

 

 

4) 정리 노트


파이썬에는 강력한 행렬 연산 도구가 있다.

바로 numpy라는 외부 라이브러리 이다.

 

표준 파이썬 라이브러리가 아니기 때문에, 본인이 코딩테스트가 목적이라면 numpy라는 툴을 이용하기 보다. 그냥 numpy라는 개념자체만 알고 있는걸 추천한다.

 

 

 

댓글