programmers.co.kr/learn/courses/30/lessons/12949
코딩테스트 연습 - 행렬의 곱셈
[[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
연습문제였지만 별로 생각을 안하고 푸는 나에겐 조금 복잡한 문제였다ㄱ-...
def solution(arr1, arr2):
answer = [[0 for col in range(len(arr2[0]))] for row in range(len(arr1))]
for i in range(len(arr1)):
for n in range(len(arr2[0])):
for x in range(len(arr1[0])):
answer[i][n] += arr1[i][x] * arr2[x][n]
return answer
#다른 풀이 방법
import numpy as np
def solution(arr1, arr2):
answer = np.dot(arr1, arr2)
return answer
물론 프로그래머스에선 사용 불가능하다.
numpy를 사용하는 방법도 알아둘것!
#2차원 배열 생성
answer = [[0 for col in range(len(arr2[0]))] for row in range(len(arr1))]
#다른 사람의 풀이
def solution(A, B):
return [[sum(a*b for a, b in zip(A_row,B_col)) for B_col in zip(*B)] for A_row in A]
zip을 이용한 방법인데....개쩐다. 오늘도 하나 배워간다.
항상 연습문제를 풀때 생각하는건데 나는 논리력과 생각하는 습관을 가질 필요가 있다. 왜냐면 나는 생각도 없고 논리력도 없기 때문 ㄱ-...
반성해야되겠군...........
'2 > 프로그래머스' 카테고리의 다른 글
프로그래머스 연습 문제 - 모의 고사 (0) | 2020.09.19 |
---|---|
프로그래머스 연습 문제 - 타겟 넘버 (0) | 2020.09.18 |
프로그래머스 연습 문제 - 더 맵게 (0) | 2020.09.17 |
프로그래머스 연습 문제 - 문자열 다루기 기본 (0) | 2020.09.15 |
프로그래머스 연습 문제 - 기능 개발 (0) | 2020.09.14 |