def make_2(number, n):
trans = ''
for _ in range(n):
if number % 2 == 1:
trans = '1' + trans
else:
trans = '0' + trans
number = number // 2
return trans
def solution(n, arr1, arr2):
answer = []
new_arr1 = []
new_arr2 = []
for a in arr1:
new_arr1.append(make_2(a, n))
for a in arr2:
new_arr2.append(make_2(a, n))
for x in range(n):
temp = ''
for y in range(n):
if new_arr1[x][y] == '1' or new_arr2[x][y] == '1':
temp += '#'
else:
temp += ' '
answer.append(temp)
return answer
코드가 지저분하다라는 느낌을 받았다. 일단 문제 흐름대로 구현을 했는데 더 좋은 코드가 있는지 고민해봐야할 것 같다. 다른 분의 코드를 참고해보자.
def solution(n, arr1, arr2):
answer = []
arr1_bin = []
arr2_bin = []
for i in range(n):
arr1_bin.append(bin(arr1[i])[2:])
arr2_bin.append(bin(arr2[i])[2:])
arr1_bin[i] = ('0' * (n-len(arr1_bin[i]))) + arr1_bin[i]
arr2_bin[i] = ('0' * (n-len(arr2_bin[i]))) + arr2_bin[i]
tmp = ''
for p in range(n):
if arr1_bin[i][p] == '1' or arr2_bin[i][p] == '1':
tmp += '#'
elif arr1_bin[i][p] == '0' and arr2_bin[i][p] == '0':
tmp += ' '
answer.append(tmp)
return answer
2진수로 변환할때 bin 함수를 사용했다. 깔끔하게 구현한 것 같아서 참고해봐야겠다.