import re
def solution(n, arr1, arr2):
answer = []
for i in range(n):
res = arr1[i] | arr2[i] # or
res = str(bin(res))[2:] # 0b 제거
res = res if len(res) == n else ''.join(['0' for _ in range(n-len(res))]) + res # n자리가 아니면 n자리로 만들어줌
# res = '0' * (n - len(res)) + res
res = re.sub('1', '#', res) #정규표현식으로 1은 #
res = re.sub('0', ' ', res) #0은 공백으로
answer.append(res)
return answer
선생님이 정규표현식 문제라고 힌트를 주시기도 했지만!!! 깔끔하게 잘 푼 것 같다. 안그랬으면 또 for문 돌릴 생각만 했을듯.
function (n, arr1, arr2) {
answer = []
const fillZero = (n, arr) => { return '0'.repeat(n - arr.length) + arr }
for (let i = 0; i < n; i++) {
let res = fillZero((arr1[i]|arr2[i]).toString(2)).replace(/1/g, '#').replace(/0/g, ' '));
answer.push(res));
}
}
res = res if len(res) == n else ''.join(['0' for _ in range(n-len(res))]) + res
다시 풀어봤는데 위의 부분만 아래처럼 바뀌었다.
res = res if len(res) == n else ('0' * (n-len(res))) + res