티스토리 뷰
programmers.co.kr/learn/courses/30/lessons/17681?language=swift
나의 풀이
import Foundation
func solution(_ n:Int, _ arr1:[Int], _ arr2:[Int]) -> [String] {
var answer: [String] = []
var newArr1 = arr1.map { String($0, radix: 2) }
var newArr2 = arr2.map { String($0, radix: 2) }
for i in 0..<n {
while newArr1[i].count < n {
newArr1[i] = "0" + newArr1[i]
}
while newArr2[i].count < n {
newArr2[i] = "0" + newArr2[i]
}
var string: String = ""
for j in 0..<n {
if Array(newArr1[i])[j] == "0", Array(newArr2[i])[j] == "0" {
string += " "
} else {
string += "#"
}
}
answer.append(string)
}
return answer
}
다른 사람의 풀이
func solution(_ n:Int, _ arr1:[Int], _ arr2:[Int]) -> [String] {
var answer: [String] = []
for i in 0..<n {
var bitwise = String(arr1[i] | arr2[i], radix: 2)
bitwise = String(repeating: "0", count: n-bitwise.count) + bitwise
answer += [bitwise.reduce("", { $0 + ($1 == "1" ? "#" : " ") })]
}
return answer
}
배울 점
1. 비트 연산자 "|" 를 사용해서 OR 논리연산
2. String에 repeating을 이용
'Algorithm' 카테고리의 다른 글
[Swift 알고리즘] 프로그래머스 Lv1 다트 게임 (0) | 2021.04.27 |
---|---|
[Swift 알고리즘] 프로그래머스 Lv1 실패율 (0) | 2021.04.27 |
[Swift 알고리즘] 프로그래머스 Lv1 키패드 누르기 (0) | 2021.04.27 |
[Swift 알고리즘] 프로그래머스 Lv1 로또의 최고 순위와 최저 순위 (0) | 2021.04.27 |
[Swift 알고리즘] 프로그래머스 Lv1 소수만들기 (0) | 2021.04.27 |
댓글
공지사항