파이썬/알고리즘 문제 풀이
[프로그래머스] 비밀지도
유자차H
2022. 3. 19. 01:50
반응형
# 십진수 to 이진수
bin(9)
#출력
0b1001
bin(9) # 0b1001
bin(30) #0b11110
bin(9|30) # 0b11111
bin(9&30) # 0b1000
# 정해진 자릿수에 빈자리 채우기
# 문자열.rjust([자리수], [채울것]) : 오른쪽부터 채우기
"1001".rjust(5, 0) #01001
# 문자열.ljust([자리수], [채울것]) : 왼쪽부터 채우기
"1001".ljust(5, 0) #10010
풀이방법
def solution(n, arr1, arr2):
ans=[]
for i in range(n):
# 십진수->이진수 -> 합치기
res = str(bin(arr1[i]|arr2[i])[2:])
res = res.replace("1", "#")
res = res.replace("0", " ")
ans.append(res.rjust(n," "))
return ans
def d2b(n, num): # 십진수 -> 이진수
ans=[0]*n
i=1
for _ in range(n-1):
if num==1:
break
ans[-i] = num%2
num=num//2
i+=1
ans[-i] = 1
return ans
def solution(n, arr1, arr2):
ans=[]
# 십진수 -> 이진수
for i in range(n):
res1 = d2b(n, arr1[i])
res2 = d2b(n, arr2[i])
#합치기
res=""
for j in range(n):
if res1[j]==1 or res2[j]==1:
res+="#"
else:
res+=" "
ans.append(res)
return ans
반응형