[프로그래머스|JAVA] 행렬의 곱셈 | 그림 풀이 ⭕️
2025. 6. 4. 18:03ㆍ💻코딩/💡Programmers
728x90
반응형
[문제 링크]
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
//answer = arr1의 행크기 * arr2 행의 열크기
int[][] answer = new int[arr1.length][arr2[0].length];
int row1, row2, col2;
for(row1 = 0; row1 < arr1.length; row1++){
for(col2 = 0; col2 < arr2[0].length; col2++){
int sum = 0;
for(row2 = 0; row2 < arr2.length; row2++){
sum += arr1[row1][row2] * arr2[row2][col2];
}
answer[row1][col2] = sum;
}
}
return answer;
}
}
[접근법]
- 행렬의 곱을 생각하여 answer 배열 크기를 정한다.
- arr2 행의 열 크기인 col2 값만큼 반복하며
- arr1 행 길이 = arr2 열 길이임을 이용하여 sum 행렬의 곱을 구하고 sum에 값을 더한다.
- answer 배열에 sum 값을 추가하여 반환한다.
⬇️ 행렬의 곱을 쉽게 이해하기 위해 그림으로 표현해보았다. ⬇️
⬆️ 위 그림을 통해
첫 번째 행렬(arr1)의 열 수 = 두 번째 행렬(arr2)의 행의 수이고,
최종적으로 나오는 행렬은 arr1 행의 수 x arr2 열의 수가 되는 것을 알 수 있다.
이를 또 이해하기 쉽게, 보기 쉽게 직접 그려보면 아래와 같다.
즉, 고정되는 값을 col2로 지정하고 행렬의 곱을 진행했다.
728x90
반응형
'💻코딩 > 💡Programmers' 카테고리의 다른 글
[프로그래머스|MySQL] 과일로 만든 아이스크림 고르기 | JOIN, WHERE AND 조건 (0) | 2025.06.10 |
---|---|
[프로그래머스|MySQL] SELECT | 조건에 부합하는 중고거래 댓글 조회하기 | DATE_FORMAT() | JOIN (0) | 2025.06.05 |
[프로그래머스|JAVA] H-Index (0) | 2025.06.04 |
[프로그래머스|JAVA] n^2 배열 자르기 | 간단 코드 ⭕️ (2) | 2025.05.23 |
[프로그래머스|JAVA] 괄호 회전하기 | 스택 | 12, 13번 실패 | 해결법⭕️ (2) | 2025.05.21 |