5.행렬의 곱셈
https://school.programmers.co.kr/learn/courses/30/lessons/12949
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
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]] |
내 답안
import java.util.*;
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
ArrayList<ArrayList<Integer>> list = new ArrayList<>();
ArrayList<Integer> element= new ArrayList<>();
for(int n = 0; n < arr1.length; n++) {
element = new ArrayList<>();
for(int i =0; i < arr2[0].length; i++){
int temp = 0;
for(int a =0; a < arr1[0].length; a++) {
temp += arr1[n][a] * arr2[a][i];
}
element.add(temp);
}
list.add(element);
}
int[][] answer = list.stream().map(vo -> vo.stream().mapToInt(Integer::intValue).toArray()).toArray(int[][]::new);
return answer;
}
}
반응형
'컴퓨터 과학 > 💯 코테' 카테고리의 다른 글
코딩 테스트 합격자 되기 | 문제7. 방문길이 (0) | 2024.11.09 |
---|---|
코딩 테스트 합격자 되기 | 문제6. 실패율 (1) | 2024.11.08 |
코딩 테스트 합격자 되기 | 문제4. 모의고사 (0) | 2024.11.08 |
코딩 테스트 합격자 되기 | 문제3. 두 개 뽑아서 더하기 (0) | 2024.11.08 |
코딩 테스트 합격자 되기 | 문제2. 배열 제어하기 (0) | 2024.11.07 |