Agorithm/프로그래머스
프로그래머스 Level 1 비밀지도
kimjinho1
2022. 6. 26. 00:18
728x90
반응형
비트연산자를 쓸 수 있느냐를 물어보는 문제이다. 처음에는 그냥 bin을 써서 풀었는데,
확실히 비트연산자 쓰는 게 훨씬 편한 것 같다.
풀이 1
def binary(num, n):
b = bin(num)[2:]
return (n - len(b))*'0' + b
def str_sum(n, s1, s2):
s = ''
for i in range(n):
s += '#' if s1[i] == '1' or s2[i] == '1' else ' '
return s
def solution(n, arr1, arr2):
ans = [0]*n
for i in range(n):
ans[i] = str_sum(n, binary(arr1[i], n), binary(arr2[i], n))
return ans
풀이 2
비트연산자와 replace를 사용하니 훨씬 쉽게 풀린다
def solution(n, arr1, arr2):
ans = []
for i in range(n):
b = bin(arr1[i] | arr2[i])[2:]
ans.append((n - len(b))*' ' + b.replace('1', '#').replace('0', ' '))
return ans
728x90
반응형