반응형
programmers.co.kr/learn/courses/30/lessons/12949
2차원 행렬 arr1과 arr2를 곱한 행렬을 만드는 문제다
arr1 = 3 * 2 행렬 | arr2 = 2 * 2 행렬 | return = 3 * 2 행렬 |
[[1, 4], [3, 2], [4, 1]] | [[3, 3], [3, 3]] | [[15, 15], [15, 15], [15, 15]] |
arr1의 row(행)와 arr2의 column(열)이 새 행렬의 row*col 이 된다 => row1 * col 2 행렬
그리고 내부 for문을 돌려서 새 행렬의 원소를 얻을 땐
arr1의 col과 arr2의 row를 곱한 것을 더하면 된다
=> sum(arr1의 col * arr2의 row) , col1과 row2가 같은 값이고 row1과 col2는 외부 for문에서 얻는 변수
말로 쓰려니 어려워보이는데 다음과 같이 for문을 돌리면 된다
def solution(arr1, arr2):
answer = []
row1 = len(arr1)
col1 = len(arr1[0])
col2 = len(arr2[0])
for i in range(row1):
arr = []
for j in range(col2):
sum = 0
for k in range(col1):
sum += arr1[i][k]*arr2[k][j]
arr.append(sum)
answer.append(arr)
return answer
'개발 > 알고리즘' 카테고리의 다른 글
[codility] BinaryGap (0) | 2021.02.16 |
---|---|
[프로그래머스] 이진 변환 반복하기 (0) | 2021.02.15 |
[프로그래머스] 카펫 (0) | 2021.02.15 |
[프로그래머스] 124 나라의 숫자 (0) | 2021.02.15 |
알고리즘 관련 사이트 & 책 (0) | 2021.02.01 |
댓글