일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 프로그래머스
- java
- 스포티파이
- SECS/GEM
- Spotify Api
- Spring JPA
- 회원가입
- 자바
- Computer Science
- MYSQL
- Spring
- c
- C++
- regression
- spotify
- spring boot
- SECS-II
- Gem
- SW Expert Academy
- modern c++
- 비트겟
- python
- SECS
- 백준
- CS
- 파이썬
- 회귀
- Baekjoon
- programmers
- SWEA
Archives
- Today
- Total
비버놀로지
[Programmers 프로그래머스] 12949 행렬의 곱셈 (JAVA) 본문
728x90
https://programmers.co.kr/learn/courses/30/lessons/12949
문제 설명
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]] |
for을 세번 반복해서 문제를 해결했다.
for을 세번 쓰지 않고, 문제를 풀 수 있는 방법도 향 후에 생각해 보아야 겠다.
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
int[][] answer = new int[arr1.length][arr2[0].length];
for (int i = 0; i < answer.length; i++) {
for (int j = 0; j < answer[0].length; j++) {
for (int k = 0; k < arr1[0].length; k++) {
answer[i][j] += arr1[i][k] * arr2[k][j];
}
}
}
return answer;
}
}
728x90
'ALGORITM > JAVA' 카테고리의 다른 글
[BAEKJOON 백준] 1149 RGB거리 (JAVA) (0) | 2021.06.29 |
---|---|
[BAEKJOON 백준] 1932 정수 삼각형 (JAVA) (0) | 2021.06.29 |
[Programmers 프로그래머스] 12953 N개의 최소공배수 (JAVA) (0) | 2021.06.28 |
[Programmers 프로그래머스] 12985 예상 대진표 (JAVA) (0) | 2021.06.20 |
[Programmers 프로그래머스] 77484 로또의 최고 순위와 최저 순위 (JAVA) (2) | 2021.06.06 |
Comments