이제 레벨1의 문제를 다 풀어서 레벨2로 넘어왔다. 다시 쉬운 연습문제들을 몇 문제 풀어보자.
행렬곱셈이 어떤 구조로 돌아가는지만 다시 살펴보고 문제를 풀어야겠다.
source : https://ko.wikipedia.org/wiki/%ED%96%89%EB%A0%AC_%EA%B3%B1%EC%85%88
반복문을 몇개 이용해서 연산만 잘 해주면 될 듯하다.
arr1
의 행의 갯수만큼 반복한다.arr2
의 열의 갯수만큼 반복한다.arr1
의 원소의 갯수만큼 반복한다.answer
에 담을 것 이기 때문에 보통의 행렬 곱셈의 순서와 다르게 arr1[i][k]*arr2[k][j]
로 연산을 한다.new
에 연산결과를 더해주고 연산결과가 담긴 temp
는 0으로 초기화한다.new
를 answer
에 더해주고 행의 결과가 담긴 new
는 빈 배열로 초기화한다.레고레고
맨 처음 문제에서 주어진 var answer = arrayOf<IntArray>()
가 없었다면 answer
의 크기를 미리 정해서 초기화해주고 반복문안에서 연산의 결과가 나오는 즉시 인덱스에 맞춰서 answer
에 바로 저장해주는 방법도 있었다. 그러나 최대한 초기 문제를 안건들고 해결하려하니까 조금은 쓸데 없는 과정들이 더 필요했다.
통과!!