๋ฌธ์ ํ์ด
func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
var sumArr = [Int]()
var ansArr = [[Int]]()
for i in 0..<arr1.count {
for j in 0..<arr1[0].count {
sumArr.append(arr1[i][j] + arr2[i][j])
}
ansArr.append(sumArr)
sumArr = []
}
return ansArr
}
๊ฐ๊ธ์ ๊ณ ์ฐจํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ํ์ด๋ฅผ ๊ฐ๋จํ๊ฒ ์์ฑํด๋ณด๊ณ ์ถ์๋ค.
ํ์ง๋ง ๊ทธ๋ ๊ฒ ๊ตฌํํ๊ธฐ ์ํด ์ฌ๋ฌ ๊ณผ์ ์ ๊ฑฐ์ณค์ง๋ง, ๊ฒฐ๊ตญ์ ์คํจํ์๋ค...
๊ทธ๋์ ๋จ์ํ๊ฒ ๊ฐ ํ๋ ฌ์ ์ธ๋ฑ์ค ๊ฐ์ ๋ํ์ฌ sumArr
์ ์ ์ฅํ์ฌ ์ต์ข
๋ต์์ ์ ์ฅํ๋ ansArr
์ ์ ์ฅํด์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก
sumArr
๋ฅผ ๋ค์ ์ด๊ธฐํํ์ฌ ๋ถํ์ํ ๊ฐ์ด ๋์ ๋์ง ์๋๋ก ๋ง๋ค์๋ค.
๋ฌธ์ ํ์ด
func solution(_ n: Int, _ arr1: [Int], _ arr2: [Int]) -> [String] {
var result = [String]()
for i in 0..<n {
var line = ""
for j in 0..<n {
let index = n - 1 - j
let bit1 = (arr1[i] >> index) & 1
let bit2 = (arr2[i] >> index) & 1
let bit = bit1 | bit2
line += (bit == 1) ? "#" : " "
}
result.append(line)
}
return result
}
๋งจ ์ฒ์ ๋ฌธ์ ๋ฅผ ํ๊ณ , ๋ค์์ผ๋ก ํ ๋ฌธ์ ๋ฅผ ์ฐพ๋ค๊ฐ ์ฌ๋ฐ๋ ๋ฌธ์ ๋ฅผ ์ฐพ์๋ค!
์ง๊ธ๊น์ง ํผ ์ฝ๋ฉํ ์คํธ ๋ฌธ์ ์ ๊ตฌ์ฑ์ด ๋ค๋ฅธ ๊ฒ์ ํฅ๋ฏธ๋ฅผ ๋๊ผ๋ค!
์ ์ฝ๋๋ฅผ ๋ณด๋ฉด ๊ฐ๊ฐ์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค ๊ฐ์ ์ ๊ทผํ์ฌ ๋นํธ ์ฐ์ฐ์๋ฅผ ํ์ฉํ ๊ฒ์ ๋ณผ ์ ์๋ค.
๊ทธ๋ฆญ ์ฐ์ฐํ ๋นํธ๊ฐ์ ์ผํญ์ฐ์ฐ์๋ฅผ ํ์ฉํ์ฌ "#"
์ " "
์ ๊ตฌ๋ถํ์๋ค.
var ansArr: [String] = []
var ans: String = ""
var map1 = arr1.map{ String($0, radix: 2) }
var map2 = arr2.map{ String($0, radix: 2) }
for i in 0..<n {
while map1[i].count != n {
map1[i].insert("0", at: map1[i].startIndex)
}
while map2[i].count != n {
map2[i].insert("0", at: map2[i].startIndex)
}
}
์ฒ์๋ถํฐ ์ ๋ฌํ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ ๊ฒ์ด ์๋, ๊ฐ ๋ฐฐ์ด์ ๊ฐ์ radix
๋ฅผ ํตํด 2์ง์๋ก ๋ณํํ์ฌ ํ์ฉํ์๋ค.
์ดํ, 2์ง์๋ก ๋ณํ๋ ๊ฐ ์ค์์ n์ ์๋ฆฟ์ ๋งํผ ๋นํธ ๊ธธ์ด๊ฐ ์งง์ ๊ฐ์ รฌnsert`๋ฅผ ํ์ฉํ์ฌ 0์ ์ถ๊ฐํด์ฃผ์๋ค.
์ฌ๋ฐ์ด ๋ณด์ฌ ๋ฌธ์ ํ์ด๋ฅผ ์๋ํ์๋๋ฐ, ์๊ฐ๋ณด๋ค ๋๋ฌด ์ด๋ ค์ ๋ค...
๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๋ฅผ ๋ค ํ๊ณ , ๋ค๋ฅธ ์ฌ๋๋ค์ ํ์ด๋ฅผ ๋ณด๋ ์์ง ๊ฐ ๊ธธ์ด ๋ฉ๋ค๋๊ฑธ ๋๋ ์ ์์๋ค... ๐