티스토리 뷰
728x90
반응형
SMALL
문제 설명
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
- 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
- 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
- 곱할 수 있는 배열만 주어집니다.
입출력 예
arr1 arr2 return
[[1, 4], [3, 2], [4, 1]] | [[3, 3], [3, 3]] | [[15, 15], [15, 15], [15, 15]] |
[[2, 3, 2], [4, 2, 4], [3, 1, 4]] | [[5, 4, 3], [2, 4, 1], [3, 1, 1]] | [[22, 22, 11], [36, 28, 18], [29, 20, 14]] |
package LV2;
/*
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
*/
public class H12949 {
// 함수의 입력값으로 두 2차원 배열 arr1, arr2를 받기
public int[][] solution(int[][] arr1, int[][] arr2) {
// 결과를 저장할 answer 2차원 배열을 초기화, arr1의 행의 크기와 arr2의 열의 크기로 배열을 생성
int[][] answer = new int[arr1.length][arr2[0].length];
// arr1의 행을 순회하는 for문
for (int i = 0; i < arr1.length; i++) {
// arr2의 열을 순회하는 for문
for (int j = 0; j < arr2[0].length; j++) {
// arr1의 열 혹은 arr2의 행을 순회하는 for문
// arr1의 각 행과 arr2의 각 열을 곱셈하는 과정을 수행
for (int k = 0; k < arr1[0].length; k++) {
// arr1의 i번째 행과 k번째 열의 원소와 arr2의 k번째 행과 j번째 열의 원소를 곱한 값을 answer의 i행 j열에 더함
answer[i][j] += arr1[i][k] * arr2[k][j];
}
}
}
// 최종적으로 계산된 행렬 곱 결과를 반환
return answer;
}
}
3중 for문을 이용해서 행렬의 곱셈을 구현
- 첫 번째 for문은 arr1의 행을 순회
- 두 번째 for문은 arr2의 열을 순회
- 세 번째 for문은 곱셈을 수행하는 동안 arr1의 열 혹은 arr2의 행을 순회
각각의 원소들을 곱하고 그 결과를 answer[i][j]에 더해주고, 이 과정을 반복하여 최종적으로 행렬의 곱을 구한다.
728x90
반응형
LIST
'알고리즘 > 프로그래머스 JAVA LV.2' 카테고리의 다른 글
기능개발 (0) | 2023.05.19 |
---|---|
프로세서 (0) | 2023.05.19 |
다음 큰 숫자 (0) | 2023.05.18 |
숫자의 표현 (0) | 2023.05.18 |
이진 변환 반복하기 (0) | 2023.05.18 |
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 웹개발
- 12기
- 항해
- 4주차
- PyCharm
- 아이들팬명록
- python
- 유형검사
- 초보개발자
- Til
- 공부하기
- visualstudiocode
- HTML
- 팬방명록만들기
- 지니차트만들기
- 아이들팬명록만들기
- 2주차
- 스파르타
- 웹개발3주차
- 현재기온넣기
- 보험
- (여자)아이들
- ajax
- 사전스터디
- 현재기온
- aihtnyc_h
- 항해99
- 12기 1주차 숙제
- 스파르타코딩
- 웹개발종합반
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함