https://programmers.co.kr/learn/courses/30/lessons/17681
def solution(n, arr1, arr2):
answer = []
arr1_1=[set_binary(n,i) for i in arr1]
arr2_1=[set_binary(n,i) for i in arr2]
for i in range(len(arr1_1)):
temp=''
for j in range(len(arr1_1[i])):
if arr1_1[i][j]=='1' or arr2_1[i][j]=='1':
temp+='1'
elif arr1_1[i][j]=='0' and arr2_1[i][j]=='0':
temp+='0'
temp=temp.replace('1','#')
temp=temp.replace('0',' ')
answer.append(temp)
return answer
def set_binary(n,num):
binary_num=""
while(1):
na=num%2
binary_num=str(na)+binary_num
m=num//2
if m==1 or m==0:
binary_num=str(m)+binary_num
break
num=m
if n>len(binary_num):
binary_num="0"*(n-len(binary_num))+binary_num
return binary_num
👉🏻 십진수를 이진수로 변환하는 함수를 몰라 직접 만들어야했고 바꾼 이진수의 자릿수를 따로 맞춰주어야 했으므로 코드가 매우 길어짐.
❗ bin()함수를 이용하여 십진수를 이진수로 변환 가능
print(bin(20)) #0b10100
print(bin(20)[2:]) #10100
❗ format(정수,'b')를 이용하여 십진수를 이진수로 변환 가능
print(format(20,'b')) #10100
print(format(20,'#b')) #0b10100
❗ rjust(자릿수,'대체문자'), ljust(자릿수, '대체문자')를 이용하여 문자열을 한쪽으로 정렬 후 공백을 채움
print('30'.rjust(5,'@')) #@@@30
print('30'.ljust(5,'@')) #30@@@
def solution(n, arr1, arr2):
answer = []
arr1_1=[format(i,'b').rjust(n,'0') for i in arr1]
arr2_1=[format(i,'b').rjust(n,'0') for i in arr2]
for i,j in zip(arr1_1,arr2_1):
temp=''
for a in range(n):
temp=temp+('1' if i[a]=='1' or j[a]=='1' else '0')
temp=temp.replace('1','#')
temp=temp.replace('0',' ')
answer.append(temp)
return answer
👉🏻format(),rjust(), zip() 이용