728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12949
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제
두 행렬을 받아서 곱한 결과를 반환하는 함수를 만들어라.
2. 문제풀이흐름
행렬의 곱셈을 모르면 못푸는 문제다.
1. arr1과 arr2의 곱셈의 결과 크기만큼의 2차원 배열을 초기화한다.
2. arr1의 행길이 만큼 순회를 돈다. (행과 열을 곱하기 때문이다.)
3. arr2의 열길이 만큼 순회를 돈다.
4. arr1의 열길이 만큼 순회를 돈다.
def solution(arr1, arr2):
answer = [[0 for _ in range(len(arr2[0]))] for _ in range(len(arr1))]#2차원배열 초기화
for i in range(len(arr1)):
for j in range(len(arr2[0])):
for k in range(len(arr1[0])):
answer[i][j] += (arr1[i][k] * arr2[k][j])
return answer
3. 배워갈 내용
✔️2차원 배열 초기화
[[0 for _ in range(len(arr2[0]))] for _ in range(len(arr1))]
--> 'arr2[0]'의 열 개수만큼 0을 갖는 리스트를 각각의 행으로 생성한다.
728x90
'알고리즘&자료구조 > Algorithm' 카테고리의 다른 글
프로그래머스 12930 - 이상한 문자 만들기 (0) | 2024.04.24 |
---|---|
프로그래머스 12926 - 시저 암호 (0) | 2024.04.24 |
프로그래머스 81302 - 거리두기 확인하기 (1) | 2024.04.19 |
프로그래머스 68645 - 삼각 달팽이 (0) | 2024.04.18 |
프로그래머스 77485 - 행렬 테두리 회전하기 (1) | 2024.04.18 |