728x90
반응형
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📌 접근 방식
행렬 곱의 정의를 고려하여서 풀었습니다. 행렬 A의 크기가 a × b, 행렬 B의 크기가 b × c일 때, 두 행렬을 곱한 결과 행렬은 a × c의 크기를 가지며, 각 원소는 A의 행과 B의 열을 기준으로 내적(dot product)을 수행해 구합니다.
이를 바탕으로 구현에서는 먼저 결과 행렬의 크기를 arr1.length × arr2[0].length로 초기화하였고, 세 개의 중첩 반복문을 사용하여 행렬 곱을 수행합니다. 가장 바깥 반복문은 결과 행렬의 행 인덱스(i), 두 번째 반복문은 열 인덱스(j), 그리고 가장 안쪽 반복문은 내적 계산을 위한 반복문으로 arr1[i][k] * arr2[k][j]를 누적하여 최종 값을 도출했습니다.
PASS CODE
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
int[][] answer = new int[arr1.length][arr2[0].length];
for(int i=0; i<arr1.length; i++) {
for(int j=0; j<arr2[0].length; j++) {
int ans = 0;
for(int k=0; k<arr1[i].length; k++) {
ans += arr1[i][k] * arr2[k][j];
}
answer[i][j] = ans;
}
}
return answer;
}
}
728x90
반응형
'Coding Test > Programmers' 카테고리의 다른 글
[SQL][Programmers] 성분으로 구분한 아이스크림 총 주문량 (0) | 2025.03.13 |
---|---|
[Java][Programmers] 의상 (0) | 2025.03.13 |
[Java][Programmers] n^2 배열 자르기 (0) | 2025.03.13 |
[Java][Programmers] 할인 행사 (0) | 2025.03.12 |
[JAVA][Programmers] 괄호 회전하기 (1) | 2025.03.12 |