๋ฐ์ํ
ํ๋ก๊ทธ๋๋จธ์ค LV.1 ๋ชจ์
๋น๋ฐ์ง๋
๋ฌธ์ ์ค๋ช
๋ค์ค๋ ํ์ ํ๋ก๋๊ฐ ๋น์๊ธ์ ์จ๊ฒจ๋๋ ์ฅ์๋ฅผ ์๋ ค์ค ๋น๋ฐ์ง๋๋ฅผ ์์ ๋ฃ์๋ค. ๊ทธ๋ฐ๋ฐ ์ด ๋น๋ฐ์ง๋๋ ์ซ์๋ก ์ํธํ๋์ด ์์ด ์์น๋ฅผ ํ์ธํ๊ธฐ ์ํด์๋ ์ํธ๋ฅผ ํด๋ ํด์ผ ํ๋ค. ๋คํํ ์ง๋ ์ํธ๋ฅผ ํด๋ ํ ๋ฐฉ๋ฒ์ ์ ์ด๋์ ๋ฉ๋ชจ๋ ํจ๊ป ๋ฐ๊ฒฌํ๋ค.
- ์ง๋๋ ํ ๋ณ์ ๊ธธ์ด๊ฐ n์ธ ์ ์ฌ๊ฐํ ๋ฐฐ์ด ํํ๋ก, ๊ฐ ์นธ์ "๊ณต๋ฐฑ"(" ") ๋๋ "๋ฒฝ"("#") ๋ ์ข ๋ฅ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- ์ ์ฒด ์ง๋๋ ๋ ์ฅ์ ์ง๋๋ฅผ ๊ฒน์ณ์ ์ป์ ์ ์๋ค. ๊ฐ๊ฐ "์ง๋ 1"๊ณผ "์ง๋ 2"๋ผ๊ณ ํ์. ์ง๋ 1 ๋๋ ์ง๋ 2 ์ค ์ด๋ ํ๋๋ผ๋ ๋ฒฝ์ธ ๋ถ๋ถ์ ์ ์ฒด ์ง๋์์๋ ๋ฒฝ์ด๋ค. ์ง๋ 1๊ณผ ์ง๋ 2์์ ๋ชจ๋ ๊ณต๋ฐฑ์ธ ๋ถ๋ถ์ ์ ์ฒด ์ง๋์์๋ ๊ณต๋ฐฑ์ด๋ค.
- "์ง๋ 1"๊ณผ "์ง๋ 2"๋ ๊ฐ๊ฐ ์ ์ ๋ฐฐ์ด๋ก ์ํธํ๋์ด ์๋ค.
- ์ํธํ๋ ๋ฐฐ์ด์ ์ง๋์ ๊ฐ ๊ฐ๋ก์ค์์ ๋ฒฝ ๋ถ๋ถ์ 1, ๊ณต๋ฐฑ ๋ถ๋ถ์ 0์ผ๋ก ๋ถํธํํ์ ๋ ์ป์ด์ง๋ ์ด์ง์์ ํด๋นํ๋ ๊ฐ์ ๋ฐฐ์ด์ด๋ค.

๋ค์ค๊ฐ ํ๋ก๋์ ๋น์๊ธ์ ์์ ๋ฃ์ ์ ์๋๋ก, ๋น๋ฐ์ง๋์ ์ํธ๋ฅผ ํด๋ ํ๋ ์์ ์ ๋์์ค ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ.
์ ๋ ฅ ํ์
์ ๋ ฅ์ผ๋ก ์ง๋์ ํ ๋ณ ํฌ๊ธฐ n๊ณผ 2๊ฐ์ ์ ์ ๋ฐฐ์ด arr1, arr2๊ฐ ๋ค์ด์จ๋ค.
- 1 โฆ n โฆ 16
- arr1, arr2๋ ๊ธธ์ด n์ธ ์ ์ ๋ฐฐ์ด๋ก ์ฃผ์ด์ง๋ค.
- ์ ์ ๋ฐฐ์ด์ ๊ฐ ์์ x๋ฅผ ์ด์ง์๋ก ๋ณํํ์ ๋์ ๊ธธ์ด๋ n ์ดํ์ด๋ค. ์ฆ, 0 โฆ x โฆ 2n - 1์ ๋ง์กฑํ๋ค.
์ถ๋ ฅ ํ์
์๋์ ๋น๋ฐ์ง๋๋ฅผ ํด๋ ํ์ฌ '#', ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด ๋ฐฐ์ด๋ก ์ถ๋ ฅํ๋ผ.
์ ์ถ๋ ฅ ์
| ๋งค๊ฐ๋ณ์ | ๊ฐ |
| n | 5 |
| arr1 | [9, 20, 28, 18, 11] |
| arr2 | [30, 1, 21, 17, 28] |
| ์ถ๋ ฅ | ["#####","# # #", "### #", "# ##", "#####"] |
| ๋งค๊ฐ๋ณ์ | ๊ฐ |
| n | 6 |
| arr1 | [46, 33, 33 ,22, 31, 50] |
| arr2 | [27 ,56, 19, 14, 14, 10] |
| ์ถ๋ ฅ | ["######", "### #", "## ##", " #### ", " #####", "### # "] |
์ ์ถ
func solution(_ n:Int, _ arr1:[Int], _ arr2:[Int]) -> [String] {
var answer: [String] = []
for i in 0..<n{
var s = String(arr1[i]|arr2[i], radix: 2)
var re = String(repeating: "0", count: n - s.count) + s
answer.append(re.reduce(""){$0 + ($1 == "0" ? " " : "#")})
}
return answer
}
๋ ๋ฐฐ์ด์ OR ์ฐ์ฐํ ํ, 2์ง์๋ก ๋ณํํ๋ค. ์ดํ ์์ ๊ณต๋ฐฑ์ 0์ผ๋ก ์ฑ์ด๋ค.
0์ด๋ผ๋ฉด ๊ณต๋ฐฑ์ผ๋ก, 1์ด๋ผ๋ฉด "#"์ผ๋ก ๋ณํํ์ฌ answer ๋ฐฐ์ด์ ์ ์ฅํ๋ค.
๋ค๋ฅธ ํ์ด
func solution(_ n:Int, _ arr1:[Int], _ arr2:[Int]) -> [String] {
return (0..<n).map { String(String(arr1[$0]|arr2[$0]|2<<(n - 1), radix: 2).map { $0 == "1" ? "#" : " " }[1...n]) }
}
arr1๊ณผ arr2 ๊ทธ๋ฆฌ๊ณ 2๋ฅผ n-1๋งํผ shift ํ ๊ฐ์ OR ์ฐ์ฐํ ํ 2์ง์๋ก ๋ณํํ๋ค. (n์ด 5์ผ ๊ฒฝ์ฐ ๊ธธ์ด๊ฐ 6์ธ ์ด์ง์ ์์ฑ)
๊ฐ ์๋ฆฌ์๊ฐ 1์ด๋ผ๋ฉด "#"์ผ๋ก, ์๋๋ผ๋ฉด ๊ณต๋ฐฑ์ผ๋ก ๋ณํํ ํ, ๊ฐ์ฅ ์๋ถ๋ถ์ ์ ์ธํ 1๋ฒ๋ถํฐ n๋ฒ๊น์ง์ ๊ฐ์ ๋ฐํํ๋ค.
ex) arr1[0] = 3, arr2[0] = 4, n = 5 ์ธ๊ฒฝ์ฐ
3 OR 4 => 111
3 OR 4 OR (2 << 4) => 100111
๋งจ ์์ 1์ ๋ฒ๋ฆฌ๋ฉด 00111๋ก, ๊ธธ์ด๊ฐ 5์ธ ์ด์ง์๊ฐ ๋๋ค.
๋ฐ์ํ
'โจ๏ธ Language > swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํ๋ก๊ทธ๋๋จธ์ค LV.1] K๋ฒ์งธ์ (0) | 2023.02.22 |
|---|---|
| [ํ๋ก๊ทธ๋๋จธ์ค LV.1] ๋คํธ ๊ฒ์ (0) | 2023.02.21 |
| [ํ๋ก๊ทธ๋๋จธ์ค LV.1] ์์ฐ (0) | 2023.02.16 |
| [ํ๋ก๊ทธ๋๋จธ์ค LV.1] ์์ ๋ง๋ค๊ธฐ (0) | 2023.02.16 |
| [ํ๋ก๊ทธ๋๋จธ์ค LV.1] ์ง์ฌ๊ฐํ ๋ณ์ฐ๊ธฐ (0) | 2023.02.15 |