https://school.programmers.co.kr/learn/courses/30/lessons/12949
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
첫 풀이
1. 전에 numpy를 다뤄본적이 있어 numpy 라이브러리를 사용했다
2. numpy에는 행렬을 다루는 기능이 있어 편리하다
3. 우리가 생각하는 곱은 행렬에서 @이다. *은 원소별로 곱하기다
import numpy as np
def solution(arr1, arr2):
answer = []
arr_1 = np.array(arr1)
arr_2 = np.array(arr2)
arr_new = arr_1 @ arr_2
return arr_new.tolist()
라이브리러를 사용하지 말고 직접 코드 구현도 해보는게 문제의 의도같다
더 나은 답안
1. 행렬의 곱에서 가장 중요한 건 왼쪽 행렬의 열 개수와 오른쪽 행렬의 행 개수가 동일할 것이다
2. 위 조건을 명심하고 코드를 구현한다
def solution(A, B):
answer = []
for i in range(len(A)):
arr = []
for j in range(len(B[0])):
tmp = 0
for k in range(len(A[0])):
tmp += A[i][k] * B[k][j]
arr.append(tmp)
answer.append(arr)
return answer
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 파이썬 문제풀이 - 가장 먼 노드 (0) | 2023.05.19 |
---|---|
[프로그래머스] 파이썬 문제풀이 - 피로도 (0) | 2023.05.19 |
[프로그래머스] 파이썬 문제풀이 - [카카오 인턴] 보석 쇼핑 (1) | 2023.05.14 |
[프로그래머스] 파이썬 문제풀이 - 불량 사용자 (0) | 2023.05.14 |
[프로그래머스] SQL 문제풀이 - 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2023.05.14 |
댓글