반응형
arr1
1 | 4 |
3 | 2 |
4 | 1 |
arr2
3 | 3 |
3 | 3 |
일때 행렬을 곱셈하여 [[15,15],[15,15],[15,15]]을 출력하는 함수를 작성하기
이번 문제는 행렬 A와 행렬 B가 주어졌을 때 그 곱을 구하는 문제이다. 삼중 반복문을 써야되는 점에서 시간복잡도가 크지 않을까라는 걱정을 했는데 다른 분들도 이 방법을 많이 사용하신 것 같았다.
인덱스가 세개가 되니 어떤 인덱스를 이용해서 행렬을 완성시켜야하는지 굉장히 머리가 아팠었다.. 이 문제를 해결하기 위해서 우선 행렬들을 하나하나 직접 인덱스를 적었다.
가령 답이 2*2 행렬이라면
00 01
10 11
-> 이런 형태의 행렬이 될텐데, 2*2와 2*2의 행렬을 곱할때는
00 01 00 01
10 11 10 11
00 = 00*00 + 01*10 01 = 00*01+01*11
10 = 10*00 + 11*10 11 = 10*01 + 11*11
와 같이 하나하나 다 풀어서 문제를 풀려고 접근했다(머리가 굉장히 아팠다..)
이렇게 풀어서 쓰면 인덱스들이 반복되는 패턴이 보이게 되는데 이를 활용하여 위의 답안을 작성했다.
반응형
'코딩 테스트' 카테고리의 다른 글
BFS - 프로그래머스 단어변환 (0) | 2022.12.01 |
---|---|
[Swift] - 프로그래머스 짝지어 제거하기 (1) | 2022.11.15 |
코딩 테스트 - [백준 1931] 회의실 배정(탐욕 알고리즘) (0) | 2022.09.20 |
코딩 테스트 - [백준 11047: 동전] (탐욕 알고리즘) (0) | 2022.09.15 |
코딩테스트 - Swift Array, Set, Dictionary 관련 함수 시간 복잡도 (0) | 2022.09.14 |