๋ฌธ์ ์ค๋ช
ํ๋ ฌ์ ๋ง์ ์ ํ๊ณผ ์ด์ ํฌ๊ธฐ๊ฐ ๊ฐ์ ๋ ํ๋ ฌ์ ๊ฐ์ ํ, ๊ฐ์ ์ด์ ๊ฐ์ ์๋ก ๋ํ ๊ฒฐ๊ณผ๊ฐ ๋ฉ๋๋ค. 2๊ฐ์ ํ๋ ฌ arr1๊ณผ arr2๋ฅผ ์ ๋ ฅ๋ฐ์, ํ๋ ฌ ๋ง์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
- ํ๋ ฌ arr1, arr2์ ํ๊ณผ ์ด์ ๊ธธ์ด๋ 500์ ๋์ง ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
arr1 | arr2 | return |
[[1, 2], [2, 3]] | [[3, 4], [5, 6]] | [[4, 6], [7, 9]] |
[[1], [2]] | [[3], [4]] | [[4], [6]] |
๋ด ๋ฌธ์ ํ์ด
func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
var array1 = [Int]()
var array2 = [[Int]]()
var sum = 0
for i in 0 ..< arr1.count {
for j in 0 ..< arr1[i].count {
sum = arr1[i][j] + arr2[i][j]
array1.append(sum)
}
array2.append(array1)
array1.removeAll()
}
return array2
}
- ๊ฐ์ ์๋ฆฌ์ ์๋ฅผ ๋ํ ๊ฐ์ ์ ์ฅํด ์ค ๋น ๋ฐฐ์ด array1, ๊ทธ๋ฆฌ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ array2๋ฅผ ์์ฑ
- ์ ๋ ฅ ๋ฐ์ ์ฒซ ๋ฒ์งธ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก 2์ค for๋ฌธ ๋๋ฆฌ๊ธฐ! (์ด์ฐจํผ ๋ ๋ฐฐ์ด์ ๊ธธ์ด๋ ๊ฐ์ผ๋ฏ๋ก)
- array1์ ๊ฐ์ ์์น์ ์๋ฅผ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๊ฐํด์ฃผ๊ณ ,
์์ฑ๋ array1์ array2์ ์ถ๊ฐํด์ค ํ removeAll๋ก ๋น์์ค๋ค.
์ด๋ฐ ์์ผ๋ก array2๋ฅผ ๋ชจ๋ ์ฑ์ ๋ฆฌํด
์ธ์์ ์ธ ํ์ด
import Foundation
func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
return zip(arr1, arr2).map{zip($0,$1).map{$0+$1}}
}
- zip ํจ์๋ฅผ ์ด์ฉ, ์์ผ๋ก ๋ฌถ์ด์ฃผ์ด ๊ณ์ฐํ๋ค.
- ๋ด ํ์ด๋ ๋ด๊ฐ ํ๋ฉด์๋ ์ข ๋ณต์กํ๋ค๊ณ ์๊ฐํ๋๋ฐ,
zip๊ณผ map์ ์ ์ฌ์ฉํ๋ ์ด๋ ๊ฒ ํ ์ค๋ก๋ ๊ฐ๋ฅํ๋ค.
๐ก ํผ๋๋ฐฑ
- zip ํจ์๋ ์ค๋ ์ธ์์ ์ธ ํ์ด๋ฅผ ํตํด ์ฒ์ ๋ฐฐ์ฐ๊ฒ ๋๋๋ฐ,
๋ ๊ฐ์ ์ํ์ค๋ฅผ ์์ผ๋ก ๋ฌถ์ด์ฃผ๋ ๊ฒ์ ๋งํ๋ค๊ณ ํ๋ค..
์ด๊ฑด ๋ฐ๋ก ๊ณต๋ถ๊ฐ ํ์ํ ๋ฏ ํ๋ค. - map ํจ์๋ ์ ๋ง ๋ค์ํ๊ฒ ์ฐ์ด๋ ๋ฏ ํ๋ค. ์์ ์์ฌ๋ก ์ธ ์ ์๋๋ก ์ฐ์ต์ด ํ์ํ๊ฒ ๋ค.
๐ [ ์ถ๊ฐ ] 1์ฃผ์ผ ํ ๋ค์ ํ์ด๋ณด๊ธฐ
func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
var result = arr1
for i in 0..<arr1.count {
for j in 0..<arr1[1].count {
result[i][j] += arr2[i][j]
}
}
return result
}
- ์ฒซ ๋ฒ์งธ ํ์ด๋ณด๋ค ํจ์ฌ ๊ฐ๊ฒฐํ๊ณ ์ธ๋ฐ ์๋ ์ฝ๋ ์์ด ์ ํผ ๊ฒ ๊ฐ๋ค.
- ์ธ์์ ์ธ ํ์ด ํ์ธํด๋ณด๋ zip, map ํ์ฉํ๋ฉด ํ ์ค์ ๋๋ผ ์ ์๊ตฌ๋;
๋ฌธ์
๋๊ธ