코딩테스트 연습 - [1차] 비밀지도
비밀지도의 암호를 해독하는 작업을 도와줄 프로그램을 작성하라.
암호화된 숫자를 OR 비트 연산으로 더한 후 2진수로 변환해 저장하였다. 그 후 숫자로 저장된 값을 " "과 "#"으로 변환하였다.
def solution(n, arr1, arr2):
answer = []
bins = []
for i, j in zip(arr1, arr2):
binary = i|j
bins.append(format(binary, 'b'))
for i in bins:
temp = ""
i = i.zfill(n) # 문자열 길이가 n이 될 때까지 왼쪽에 0을 채움.
for j in i:
if j == '0':
temp += " "
if j == '1':
temp += "#"
answer.append(temp)
return answer
이중 for문을 사용하지 않고 replace를 사용하여 " "과 "#"을 표현하였다.
bin(i|j) 을 사용하면 변수값을 2진수로 변환하고 비트연산까지 해주는 것 같다. 앞의 2진수 표현인 0b가 붙어서 [2:]으로 잘라주었다. zfill과 rjust 둘다 문자열이나 숫자를 일정한 길이로 반환시키는 함수다.
def solution(n, arr1, arr2):
answer = []
for i,j in zip(arr1,arr2):
a12 = str(bin(i|j)[2:])
a12=a12.rjust(n,'0')
a12=a12.replace('1','#')
a12=a12.replace('0',' ')
answer.append(a12)
return answer