풀이
파이썬의 format()을 사용하여 비트연산을 한 결과를 이진수로 바꾸어 문자열로 저장해 주었습니다.
이때, 이진수의 길이는 n개를 필요로 하지만 비트의 앞이 0일 경우 0을 빼고 1인 부분부터 이진수를 만들기 때문에 zfill()을 이용해 0이 빠진 부분에 다시 0을 채웠습니다.
마지막으로 정규표현식 re의 sub()를 사용하여 비트가 1인 부분을 '#' 으로 0인 부분을 ' ' 으로 바꾸어 해결했습니다.
이진수로 바꿀때 bin()을 사용하여 이진수로 바꾸어 문자열로 저장할 수 있습니다. 또한, zfill()이 아닌 rjust()를 사용하여 0을 채울 수 있습니다.
코드
import re
def solution(n, arr1, arr2):
answer = []
for i in range(n):
map = "{0:b}".format(arr1[i] | arr2[i]).zfill(n)
# map = str(bin(arr1[i] | arr2[i]))[2:].rjust(n, '0')
# map = str(bin(arr1[i] | arr2[i]))[2:].zfill(n)
# map = format(arr1[i] | arr2[i], 'b').rjust(n, '0')
map = re.sub('1', '#', map)
map = re.sub('0', ' ', map)
answer.append(map)
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Python] 다트 게임 (0) | 2021.03.07 |
---|---|
[Python] 실패율 (0) | 2021.03.06 |
[Python] 키패드 누르기 (0) | 2021.02.27 |
[Python] 2016년 (0) | 2021.02.21 |
[Python] K번째수 (0) | 2021.02.20 |