https://school.programmers.co.kr/learn/courses/30/lessons/12949
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제풀이 접근
행렬의 합은
answer[0][0] = arr1[0][0] * arr2[0][0] + arr1[0][1] * arr2[1][0];
answer[0][1] = arr1[0][1] * arr2[0][1] + arr1[0][1] * arr2[1][1];
즉,
R[i][j] = A[i][K] * B[K][j] + A[i][K] * B[K][j]
출처: https://tosuccess.tistory.com/216 [EI_HJ:티스토리]
이런식으로 표현이 가능하다.
K는 A 열 개수, 혹은 B 행 개수다.
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
int len1 = arr1.length;
int len2 = arr2[0].length;
int[][] answer = new int[len1][len2];
for(int i = 0; i < len1; i++){
for(int j = 0; j < len2; j++){
answer[i][j] = 0;
for(int k = 0; k < arr2.length; k++) {
answer[i][j] += arr1[i][k] * arr2[k][j];
}
}
}
return answer;
}
}
문제풀이 회고
k의 범위를 arr2.length가 아닌 len2로 해서 실패했다.
'Algorithm > 프로그래머스 코딩테스트 문제풀이전략' 카테고리의 다른 글
[프로그래머스] Lv.1 시저 암호 (0) | 2024.04.16 |
---|---|
[프로그래머스] Lv.1 자연수 뒤집어 배열로 만들기 (0) | 2024.04.16 |
[프로그래머스] Lv2. 거리두기 확인하기 (0) | 2024.04.16 |
[프로그래머스] Lv.2 삼각 달팽이 (0) | 2024.04.16 |
[프로그래머스] Lv.2 교점에 별 만들기 (0) | 2024.04.15 |