MUKER_DEV with iOS

[swift] ๋ฐฑ์ค€ - 2740๋ฒˆ: ํ–‰๋ ฌ ๊ณฑ์…ˆ ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/BAEKJOON

[swift] ๋ฐฑ์ค€ - 2740๋ฒˆ: ํ–‰๋ ฌ ๊ณฑ์…ˆ

MUKER 2023. 7. 17. 09:28
๋ฌธ์ œ ๋งํฌ
 

2740๋ฒˆ: ํ–‰๋ ฌ ๊ณฑ์…ˆ

์ฒซ์งธ ์ค„์— ํ–‰๋ ฌ A์˜ ํฌ๊ธฐ N ๊ณผ M์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ํ–‰๋ ฌ A์˜ ์›์†Œ M๊ฐœ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ ๋‹ค์Œ ์ค„์—๋Š” ํ–‰๋ ฌ B์˜ ํฌ๊ธฐ M๊ณผ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด์–ด์„œ M๊ฐœ์˜ ์ค„์— ํ–‰๋ ฌ B์˜ ์›์†Œ K๊ฐœ

www.acmicpc.net


๋ฌธ์ œ

N*Mํฌ๊ธฐ์˜ ํ–‰๋ ฌ A์™€ M*Kํฌ๊ธฐ์˜ ํ–‰๋ ฌ B๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋‘ ํ–‰๋ ฌ์„ ๊ณฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ํ–‰๋ ฌ A์˜ ํฌ๊ธฐ N ๊ณผ M์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ํ–‰๋ ฌ A์˜ ์›์†Œ M๊ฐœ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ ๋‹ค์Œ ์ค„์—๋Š” ํ–‰๋ ฌ B์˜ ํฌ๊ธฐ M๊ณผ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด์–ด์„œ M๊ฐœ์˜ ์ค„์— ํ–‰๋ ฌ B์˜ ์›์†Œ K๊ฐœ๊ฐ€ ์ฐจ๋ก€๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. N๊ณผ M, ๊ทธ๋ฆฌ๊ณ  K๋Š” 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๊ณ , ํ–‰๋ ฌ์˜ ์›์†Œ๋Š” ์ ˆ๋Œ“๊ฐ’์ด 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ํ–‰๋ ฌ A์™€ B๋ฅผ ๊ณฑํ•œ ํ–‰๋ ฌ์„ ์ถœ๋ ฅํ•œ๋‹ค. ํ–‰๋ ฌ์˜ ๊ฐ ์›์†Œ๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.

์˜ˆ์ œ


์„ฑ๊ณต ํ’€์ด

let NM = readLine()!.split { $0 == " "}.map { Int($0)! }, N = NM[0], M = NM[1]
var A = [[Int]]()
for _ in 0..<N {
    A.append(readLine()!.split { $0 == " "}.map { Int($0)! })
}

let MK = readLine()!.split { $0 == " "}.map { Int($0)! }, K = MK[1]
var B = [[Int]]()
for _ in 0..<M {
    B.append(readLine()!.split { $0 == " "}.map { Int($0)! })
}

for i in 0..<N {
    var arr = [Int]()
    for j in 0..<K {
        var sum = 0
        for k in 0..<M {
            sum += A[i][k] * B[k][j]
        }
        arr.append(sum)
    }
    arr.forEach { print($0, terminator: " ") }
    print("")
}

ํ’€์ด ํ‚ค์›Œ๋“œ

  • ํ–‰๋ ฌ๊ณฑ์…ˆ์„ ์–ด๋–ป๊ฒŒ ํ‘ธ๋Š”์ง€๋Š” ๋จธ๋ฆฟ์†์—์„œ ํœ˜๋ฐœ๋œ์ง€ ์˜ค๋ž˜.. ๋‹ค์‹œ ํ–‰๋ ฌ๊ณฑ์…ˆ์˜ ๊ณต์‹์„ ๋จธ๋ฆฌ์— ์ฃผ์›Œ๋‹ด์•„ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค..