알고리즘 문제 풀이 / 프로그래머스 (programmers) - 행렬의 곱셈
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12949
문제 풀이
내가 고등학생 일 때, 교육과정에서 행렬이 빠졌었기 때문에 행렬이 있었다는 말만 들어봤지 행렬 개념 조차 몰랐다. 그래도 문제에서 설명해주겠지 라는 마음에 문제를 들어갔는데 행렬에 대한 설명은 없었다. 행렬의 결과를 완성하는 함수를 작성해달라는 지문 한 줄 있었고 자세한 입출력예제에 관한 설명도 없이 예제 2개만 써있었다. 그 결과값만 봐서는 행렬을 이해할 수 없었기에 행렬부터 공부해야 겠다는 생각이 들었다. 내가 어릴 때 오빠가 풀었던 수학의 정석을 구경해본적이 있었다. 그 때 행렬 기호가 신기해서 본적이 있었는데 그 기억이 떠올라 수학의 정석 책을 찾아 보고 행렬이 뭔지 공부부터 했다. 알고나니 쉬운 문제였다.
이번 문제는 딱히 설명할 것 없이 행렬의 원리대로 풀었다. 삼중포문을 쓰기 싫어서 따로 함수를 호출하는 식으로 풀었었는데 생각해보니 이게 더 안좋은것 같긴 하다. 내가 멍청했다.. 이번 문제 점수는 7점이었다.
public static int[][] solution(int[][] arr1, int[][] arr2) {
int raw = arr1.length;
int column = arr2[0].length;
int[][] answer = new int[raw][column];
for(int i = 0; i < raw; i++) {
for(int j = 0; j < column; j++) {
answer[i][j] = racol(arr1, arr2, i, j);
}
}
return answer;
}
public static int racol(int[][] arr1, int[][] arr2, int i, int j) {
int result = 0;
int r = 0;
while(r < arr1[i].length) {
result += arr1[i][r] * arr2[r++][j];
}
return result;
}
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스(programmers)] (Summer/Winter Coding 2018) 영어 끝말잇기 (0) | 2021.06.17 |
---|---|
[프로그래머스(programmers)] (Lv2) 피보나치 수 (0) | 2021.06.13 |
[프로그래머스(programmers)] (Lv2) JadenCase 문자열 만들기 (0) | 2021.06.10 |
[프로그래머스(programmers)] (2020 카카오 인턴십) 수식 최대화 (0) | 2021.06.04 |
[프로그래머스(programmers)] (월간 코드 챌린지 시즌1) 이진 변환 반복하기 (0) | 2021.06.04 |
댓글