Notice
Recent Posts
Link
- Today
- Total
hye-log
[프로그래머스]행렬의 곱셈(Python) 본문
0. 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12949
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 설명
1) 주어진 두 행렬의 곱셈 구하기
2. 입출력
# input
arr1 = [[1, 4], [3, 2], [4, 1]]
arr2 = [[3, 3], [3, 3]]
# output
return = [[15, 15], [15, 15], [15, 15]]
3. 코드
def solution(arr1, arr2):
answer = []
for i in range(len(arr1)): # 첫 번째 배열의 행 만큼 반복
tmp_list = []
for j in range(len(arr2[0])): # 두 번째 배열의 열 만큼 반복
tmp = 0
for k in range(len(arr1[0])): # 첫 번째 배열의 열 만큼 반복
tmp += arr1[i][k] * arr2[k][j] # 각 자리를 곱해서 더하기
tmp_list.append(tmp) # 더한 값을 임시 리스트에 append
answer.append(tmp_list) # 임시 리스트를 정답에 append
return answer
실행 결과
4. 회고
이 문제는 우리가 알고 있는 행렬의 곱셈을 삼중 for 문으로 구현하는 문제이다. 문제에서 헷갈릴만한 부분은 for 문의 범위를 지정할 때 2차원 배열이므로 배열의 열의 개수만큼 반복할지, 행의 개수만큼 반복할지를 결정하는 것이다. 이 부분으로 에러가 발생했는데, 각 자리를 하나씩 따져보면서 해결할 수 있었다.
5. Github
https://github.com/iihye/Algorithm/blob/main/Programmers/matrix_multiplication.py
GitHub - iihye/Algorithm
Contribute to iihye/Algorithm development by creating an account on GitHub.
github.com
728x90
'CodingTest > Programmers' 카테고리의 다른 글
[프로그래머스]체육복(Python) (0) | 2022.10.30 |
---|---|
[프로그래머스]위장(Python) (0) | 2022.10.26 |
[프로그래머스]N개의 최소공배수(Python) (0) | 2022.10.20 |
[프로그래머스]구명보트(Python) (0) | 2022.10.04 |
[프로그래머스]짝지어 제거하기(Python) (0) | 2022.10.02 |
Comments