π μ½λ©ν μ€νΈ
βπ» Github
λ¬Έμ μ€λͺ
λ€μ€λ νμ νλ‘λκ° λΉμκΈμ μ¨κ²¨λλ μ₯μλ₯Ό μλ €μ€ λΉλ°μ§λλ₯Ό μμ λ£μλ€. κ·Έλ°λ° μ΄ λΉλ°μ§λλ μ«μλ‘ μνΈνλμ΄ μμ΄ μμΉλ₯Ό νμΈνκΈ° μν΄μλ μνΈλ₯Ό ν΄λ ν΄μΌ νλ€. λ€νν μ§λ μνΈλ₯Ό ν΄λ ν λ°©λ²μ μ μ΄λμ λ©λͺ¨λ ν¨κ» λ°κ²¬νλ€.
- μ§λλ ν λ³μ κΈΈμ΄κ° 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 β¦ 2 - 1μ λ§μ‘±νλ€.
- n
μΆλ ₯ νμ
μλμ λΉλ°μ§λλ₯Ό ν΄λ νμ¬ '#', 곡백μΌλ‘ ꡬμ±λ λ¬Έμμ΄ λ°°μ΄λ‘ μΆλ ₯νλΌ.
μ μΆλ ₯ μμ
맀κ°λ³μ | κ° |
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] {
return (0..<n).map{
var orStr = String(arr1[$0]|arr2[$0], radix: 2)
return (String(repeating: "0",count: n-orStr.count) + orStr).map{ $0 == "1" ? "#" : " " }.joined()
}
}
λΉνΈμ°μ°μκ° Int κ°μΌλ‘ λλμ§ λͺ°λΌμ ν€λ§€μλ λ¬Έμ !
νμ§λ§ λΉνΈμ°μ°μκ° Int κ°μΌλ‘ λλ κ²μ μ μ΄νμλ λ§νμμ΄ νλ Έλ€.
μΉ΄μΉ΄μ€ λ¬Έμ μ€ μ μΌ μ¬μ λ λ¬Έμ κ°λ€.
λ€λ₯Έ μ¬λ νμ΄
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[$0]|arr2[$0]|2 λ₯Ό (n-1)λ§νΌ μννΈνλ€?!
λΌλκ² 2λ 10 μΈλ° μ΄ κ²κΉμ§ OR μ°μ°μ ν΄μ μννΈλ₯Ό νλ μ΄μ λ μλ¦Ώκ°μ λ§μΆκ³ μΆμ΄μκ² μ§?!
μ.. κ·Όλ° μ λ° μκ°μ μ΄μΊνμ§..
μ€μν κ°λ
- λΉνΈμ°μ°μ
~ A : Aμ λΉνΈλ₯Ό λ°μ ν κ²°κ³Όλ₯Ό λ°ν
A & B : Aμ Bμ λΉνΈ AND λ Όλ¦¬ μ°μ° μ€ν
A | B : Aμ Bμ λΉνΈ OR λ Όλ¦¬ μ°μ° μ€ν
A ^ B : Aμ Bμ λΉνΈ XOR λ Όλ¦¬ μ°μ° μ€ν
A >> B / A << B : Aμ λΉνΈλ₯Ό Bλ§νΌ μννΈ μ΄λ
→ λΉνΈ μ°μ°μλ μ μμνλ‘λ κ°λ₯
- μμ§μλ₯Ό μ΄μ§μλ‘ λ³ν
String( Int κ°, radix: 2)