[행렬의 곱셈] https://programmers.co.kr/learn/courses/30/lessons/12949
풀고 느낀점
오랜만에 코테를 풀어서 그런지 생각보다 오래걸렸습니다. 한참 코테 문제를 풀 때 잘 안풀리면 무조건 디버그를 돌려서 차근 차근 보자라는 원칙이 있었는데 망각하고 머리속으로 계속 상상하면서 푸니까 더 오래 걸린 것 같습니다. 나중엔 결국 디버그 돌려서 풀었습니다. 갑자기 드는 생각인데 개발 툴 도움 없이는 절대 문제를 풀지 못할 것 같다는 생각이 들었습니다. 진짜 잘푸는 사람보면 툴 도움 없이 그냥 크롬에서 풀던데 그 경지는 절대 못갈 것 같습니다. 다시 일주일에 3코테 목표를 세웠습니다. 이직을 하고 나서 꽤 소홀했는데 다시 정신차려야할 것 같습니다.
/**
* 2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
* https://programmers.co.kr/learn/courses/30/lessons/12949
*/
public class Level2_5 {
public static void main(String[] args) {
Level2_5 level2_5 = new Level2_5();
level2_5.solution(
new int[][] {
{1,2,3},
{4,5,6}
},
new int[][] {
{1,4},
{2,5},
{3,6}
}); // [[14, 32], [32, 77]]
level2_5.solution(
new int[][] {
{1, 4},
{3, 2},
{4, 1}
}, new int[][]{
{3, 3},
{3, 3}
}); // [[15,15],[15,15],[15,15]]
level2_5.solution(
new int[][] {
{2, 3, 2},
{4, 2, 4},
{3, 1, 4}
},
new int[][]{
{5, 4, 3},
{2, 4, 1},
{3, 1, 1}
}); // [[22, 22, 11], [36, 28, 18], [29, 20, 14]]
}
public int[][] solution(int[][] arr1, int[][] arr2) {
int rSize = arr1.length;
int mSize = arr1[0].length;
int cSize = arr2[0].length;
int[][] answer = new int[rSize][cSize];
for (int i = 0; i < rSize; i++) {
for (int j = 0; j < cSize; j++) {
int result = 0;
for (int k = 0; k < mSize; k++) {
result = result + arr1[i][k] * arr2[k][j];
}
answer[i][j] = result;
}
}
return answer;
}
}
'Study with book > Algorithms' 카테고리의 다른 글
[프로그래머스] 124나라의 숫자 (0) | 2021.06.08 |
---|---|
[프로그래머스] 더 맵게 (0) | 2021.04.12 |
[프로그래머스] 메뉴 리뉴얼 (0) | 2021.04.04 |
[프로그래머스] 베스트앨범 (0) | 2021.04.02 |
[2021 카카오 블라인드 온라인 코딩 테스트] 메뉴 리뉴얼 (0) | 2021.04.02 |