Foma's ํ์ด
arr1์ ํ์ผ๋ก ๊ฐ ๋ฐฐ์ด์ ์ซ์๋ฅผ ๊ฐ๋ก๋ฐฉํฅ(→)์ผ๋ก ์ด๋ํ๊ณ ๋ค์ ๋ฐฐ์ด๋ก ์ด๋ํฉ๋๋ค.
[2,3,2]
[4,2,4]
[3,1,4]
arr2 ์ด์ผ๋ก ๊ฐ ๋ฐฐ์ด์ ์ธ๋ก๋ฐฉํฅ(↓)์ผ๋ก ์ด๋ํ๊ณ ๋ฐฐ์ด์์ ๋ค์ ์ซ์๋ก ์ด๋ํฉ๋๋ค.
[5,4,3]
[2,4,1]
[3,1,1]
arr1์ ํ๊ณผ arr2์ ์ด์ ๊ฐ๊ฐ ๊ณฑํด์ค ๊ฐ์ ๋ํ๊ฐ์ answer์ ์ฐจ๋ก๋๋ก ๋ด์์ค๋๋ค.
ex)
2 * 5 + 3 * 2 + 2 * 3 => 22
2 * 4 + 3 * 4 + 2 * 1 => 22
2 * 3 + 3 * 1 + 2 * 1 => 11
4 * 5 + 2 * 2 + 4 * 3 => 36
4 * 4 + 2 * 4 + 4 * 1 => 28
4* 3 + 2 * 1 + 4 * 1 => 18
3 * 5 + 1 * 2 + 4* 3 => 29
3 * 4 + 1 * 4 + 4 * 1 => 20
3 * 3 + 1 * 1 + 4 * 1 => 14
answer = [[22,22,11],[36,28,18],[29,29,18]]
์ด์ ๊ฐ์ด ์งํ๋๊ธฐ ์ํด์
๋จผ์ answer์ ๋ด์ ๋ฐฐ์ด์ ๋ง๋ค์ด์ค๋๋ค. (ํ * ์ด ์ซ์๋ค์ ๋ด๋ ๊ฒ์ด๋ฏ๋ก ํ์ ๊ฐฏ์๋งํผ [Int]๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ค๋๋ค.-> var answer = Array(repeating: [Int](), count: arr1.count)
arr1์ ๋งจ ๋ฐ๊นฅ for๋ฌธ์ผ๋ก ๋ฐ๋ณตํด์ฃผ๊ณ -> for i in 0..<arr1.count {...}
arr2์ ์์ ์ซ์๋งํผ for๋ฌธ์ผ๋ก ๋ฐ๋ณตํด์ฃผ๊ณ -> for j in 0..<arr2[0].count{...}
answer์ ์ถ๊ฐ๋ ์ซ์๋ฅผ ๋ด์ ๋ณ์๋ฅผ ๋ง๋ค์ด์ค๋๋ค. ->var value = 0
arr2์ ๊ฐฏ์๋งํผ ๋ฐ๋ณตํด์ค๋๋ค. -> for k in 0..<arr2.count{...}
value์ ์์ ์ค๋ช ํ๋๋ก ๊ฐ์ ๋ฃ์ด์ค๋๋ค. -> value += arr1[i][k] * arr2[k][j]
arr2์ ๊ฐฏ์๋งํผ ๋ฐ๋ณตํ๋ for๋ฌธ์ ๋์ answer์ arr1์ ์ฐจ๋ก๋๋ก ๋ฃ์ด์ค๋๋ค. -> answer[i].append(value)
์ ์ฒดํ์ด
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import Foundation
func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
var answer = Array(repeating: [Int](), count: arr1.count)
for i in 0..<arr1.count {
for j in 0..<arr2[0].count{
var value = 0
for k in 0..<arr2.count{
value += arr1[i][k] * arr2[k][j]
}
answer[i].append(value)
}
}
return answer
}
|
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค N๊ฐ์ ์ต์๊ณต๋ฐฐ์ Swift (0) | 2020.10.09 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ํผ๋ณด๋์น ์ Swift (0) | 2020.10.09 |
2019 KAKAO BLIND RECRUITMENT ์คํ์ฑํ ๋ฐฉ Swift (0) | 2020.09.24 |
ํ๋ก๊ทธ๋๋จธ์ค ์์ด ๋๋ง์๊ธฐ Swift (0) | 2020.09.24 |
2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ฝ ํํ Swift (0) | 2020.09.07 |
๋๊ธ