알고리즘 문제 풀이

[프로그래머스] 행렬의 곱셈 12949 Swift

lgvv 2021. 11. 15. 21:23

✅ 행렬의 곱셈을 알아보자.

 

정말 기초다. 예전에 대학에서 공부할 떄, 이거 진짜 난제였는데,

이제는 훅훅 푸는 나를 보니 실력이 늘은 것 같아서 좋다.

 

 

//
//  main.swift
//  algorithm
//
//  Created by Hamlit Jason on 2021/11/15.
//  https://programmers.co.kr/learn/courses/30/lessons/12949

import Foundation

func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {

//    print(arr1.count)
//    print(arr2.count)
    var answer : [[Int]] = Array(repeating: Array(repeating: 1, count: arr2[0].count), count: arr1.count)
//    print(answer)
    var sum = 0
    
    
    for i in 0..<arr1.count { // 행
//        print("- i is \(i)")
        for j in 0..<arr2[0].count { // 열
//            print(j)
            for k in 0..<arr2.count {
//                print(k)
                sum = sum + arr1[i][k] * arr2[k][j]
            }
//            print(sum)
//            print("i idx \(i), j idx \(j)")
            
            answer[i][j] = sum
            sum = 0
        }
        sum = 0
    }
    
    
    return answer
    
}

//print(solution([[1, 4], [3, 2], [4, 1]], [[3, 3], [3, 3]]))
//print(solution([[2, 3, 2], [4, 2, 4], [3, 1, 4]],[[5, 4, 3], [2, 4, 1], [3, 1, 1]]))
//print(solution([[2, 2, 2], [2, 2, 2]], [[2],[2],[2]]))