문제
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
- 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
- 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
- 곱할 수 있는 배열만 주어집니다.
입출력 예
분석
- 행렬A x 행렬B 는 A의 1행과 B의 1열을 각각 순번대로 곱해 나온 값을 합하여 나온다.
- 그러므로 행렬의 곱에서 결과물로 도출된 행렬의 크기 (행x열) 는 [A의 행 개수 x B의 열 개수]가 된다.
피드백
- 대충 느낌은 알겠는데 머리가 안 돌아가서 생각보다 풀이에 오래 걸렸다...
답안
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
int[][] answer = new int[arr1.length][arr2[0].length];
int cnt = arr1[0].length;
for(int i = 0; i < arr1.length; i++) { // arr1의 행을 순회
for(int j = 0; j < arr2[0].length; j++) { // arr2의 열을 순회하여 곱셈 및 합
int tmp = 0;
for(int x = 0; x < cnt; x++) {
tmp += arr1[i][x] * arr2[x][j];
}
answer[i][j] = tmp;
}
}
return answer;
}
}
🔗링크
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
'코딩테스트 > 프로그래머스Programmers' 카테고리의 다른 글
[프로그래머스][Lv.2][JAVA]기능개발 (1) | 2025.03.04 |
---|---|
[프로그래머스][Lv.2][JAVA]의상 (0) | 2025.02.22 |
[프로그래머스][Lv.2][JAVA][월간 코드 챌린지 시즌3]n^2 배열 자르기 (0) | 2025.02.01 |
[프로그래머스][Lv.2][JAVA]연속 부분 수열 합의 개수 (4) | 2025.01.27 |
[프로그래머스][Lv.1][JAVA][PCCE 기출문제] 9번 / 지폐 접기 (0) | 2025.01.26 |