2018 KAKAO BLIND RECRUITMENT
https://programmers.co.kr/learn/courses/30/lessons/17681
비트연산 중 OR 연산을 이용하는 문제.
입출력 예제에 "10011" 이면 "# ##" 으로 되어있어서 "0"이 반복되는 걸 막아야 하나? 싶었는데 예제부분의 오류인 듯 싶다.
function solution(n, arr1, arr2) {
const ORarr = arr1.map((x,i) => {
var num = (x | arr2[i]).toString(2);
while(num.length < n){
num = "0" + num;
}
//num = num.replace(/0+/g, "0");
return num
})
let result = [];
ORarr.forEach(x => {
var r = "";
for(var i=0; i<x.length; i++){
x[i] == "1" ? r+="#" : r+=" ";
}
result.push(r);
})
return result;
}
def solution(n, arr1, arr2):
result = []
for i in range(0, n) :
r = bin(arr1[i] | arr2[i])[2::]
# bin()를 이용하여 2진수로 만들게 되면 앞에 0b가 붙기 때문에 슬라이싱 처리
zero = n-len(r)
# while문을 쓰지 않았음
r = "0"*zero + r
temp = ""
for j in range(0, len(r)) :
if r[j]=="1" :
temp += "#"
else :
temp += " "
result.append(temp)
return result