๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ณณ๊ฐ„์—์„œ ์ธ์‹ฌ๋‚œ๋‹ค

[Kotlin] ํ–‰๋ ฌ์˜ ๊ณฑ

https://ko.wikipedia.org/wiki/%ED%96%89%EB%A0%AC_%EA%B3%B1%EC%85%88

 

ํ–‰๋ ฌ ๊ณฑ์…ˆ - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „

์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „. ํ–‰๋ ฌ ๊ณฑ์…ˆ์„ ์œ„ํ•ด์„  ์ฒซ์งธ ํ–‰๋ ฌ์˜ ์—ด ๊ฐฏ์ˆ˜์™€ ๋‘˜์งธ ํ–‰๋ ฌ์˜ ํ–‰ ๊ฐฏ์ˆ˜๊ฐ€ ๋™์ผํ•ด์•ผํ•œ๋‹ค. ๊ณฑ์…ˆ์˜ ๊ฒฐ๊ณผ ์ƒˆ๋กญ๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ํ–‰๋ ฌ์€ ์ฒซ์งธ ํ–‰๋ ฌ์˜ ํ–‰ ๊ฐฏ์ˆ˜์™€ ๋‘˜์งธ ํ–‰๋ ฌ์˜ ์—ด

ko.wikipedia.org

 

ํ–‰๋ ฌ A๋Š” a x b ํ–‰๋ ฌ, ํ–‰๋ ฌ B๋Š” b x cํ–‰๋ ฌ์ด๋ผ๊ณ  ํ•  ๋•Œ, 

ํ–‰๋ ฌ A์™€ ํ–‰๋ ฌ B์˜ ๊ณฑ์œผ๋กœ ๋‚˜์˜จ ํ–‰๋ ฌ C์˜ ์›์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

ํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ ํ›„ ํ–‰๋ ฌ ์š”์†Œ์˜ ์‹

 

 

fun matrixMultiply(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {
    val (m1, m2) = if (arr1[0].size == arr2.size) {
        arr1 to arr2
    } else { // arr2[0].size == arr1.size
        arr2 to arr1
    }

    return Array<IntArray>(m1.size) { i ->
        IntArray(m2[0].size) { j ->
            var sum = 0
            for (k in m2.indices) {
                sum += m1[i][k] * m2[k][j]
            }
            sum
        }
    }
}