2018 KAKAO BLIND RECRUITMENT秘密地図(lv 1)


解答コード1

def solution(n, arr1, arr2):
    answer = []

    for i in range(n):
        temp1 = list(map(int, list(format(arr1[i], 'b'))))
        temp2 = list(map(int, list(format(arr2[i], 'b'))))

        while len(temp1) < n:
            temp1.insert(0, 0)
        while len(temp2) < n:
            temp2.insert(0, 0)

        for j in range(n):
            if temp2[j] == 1 or temp1[j] == 1:
                temp1[j] = '#'
            else:
                temp1[j] = ' '
        answer.append("".join(temp1))

    return answer

解答コード2

def solution(n, arr1, arr2):
    answer = []
    
    for i, j in zip(arr1, arr2): # for문의 iterator를 pair로 받음
        a12 = str(bin(i | j)[2:]) #bin 함수는 'ob + 2진수 변환 수'를 return 해서 2:부터 받아 ob를 제거
        #(i | j)는 i랑 j를 이진 변환하고, 같은 자리에 모두 0이 오면 0, 하나라도 1이 있으면 1로 
        a12 = a12.rjust(n, '0') # 오른쪽 정렬 후 -> 문자열.rjust(전체 자리 숫자, 공백이 있을 경우 채울 텍스트) 
        a12 = a12.replace('1', '#')
        a12 = a12.replace('0', ' ')
        answer.append(a12)
        
    return answer

学識


1.バイナリビット演算子



2.zip関数