반응형
✔️ 문제 설명
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
✔️ 제한 사항
- 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
- 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
- 곱할 수 있는 배열만 주어집니다.
✔️ 입출력 예
✔️ 코드 구상
완전한 수학 문제다!!!! 이 문제를 풀기 위해 행렬의 곱셈을 찾아봐야했다.
예제 1번을 보면 A x B 와 C x D를 곱할 때 A x D 의 결과물이 나오고 B와 C는 항상 같아야 한다는 것을 알 수 있다.
배열의 크기를 A x D로 정의해주고 각 자리마다 값을 계산해서 채워 넣어야 하기 때문에 3중 for문을 사용한다.
✔️ 코드
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 sum = 0;
for(int k = 0; k < arr2.length; k++) {
sum += arr1[i][k] * arr2[k][j];
}
answer[i][j] = sum;
}
}
return answer;
}
}
📄 원문
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
반응형
'🧠 Algorithm > [JAVA] Programmers' 카테고리의 다른 글
[12913번] 땅따먹기 (0) | 2022.08.16 |
---|---|
[12900번] 2 x n 타일링 (0) | 2022.08.11 |
[42839번] 소수 찾기 (0) | 2022.08.09 |
[1844번] 게임 맵 최단거리 (0) | 2022.08.08 |
[17686번] 파일명 정렬 (0) | 2022.08.05 |