본문 바로가기
코딩테스트 연습

비밀지도_파이썬

by 부자독개 2020. 12. 24.
반응형
def solution(n, arr1, arr2):
    answer = []
    map = [['#' for i in range(n)] for j in range(n)]
    
    temp1 = arr1
    temp2 = arr2
    for i in range(n):
        for j in range(n):
            if (temp1[i] % 2 == 0 ) and (temp2[i]%2==0):
                map[i][-1-j] = ' '
            temp1[i] = temp1[i] // 2
            temp2[i] = temp2[i] // 2
            
        m = ''
        for j in range(n):
            m += map[i][j]
        answer.append(m)
    
        
    return answer

내가 푼 코드 이진법을 처리하는 함수를 몰라서 직접 해결.

 

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

비트연산과 처음보는 rjust라는 함수를 이용해서 아주 가독성 좋게 풀어낸 코드가 있길래 가져온다.

반응형

댓글