[プログラマー](python)秘密地図-2018 KAKAO BLIND RECRUIMENT


質問する

🧩 首都コード

  • リストはそれぞれバイナリ
  • に変換する.
  • 5桁
  • は、それぞれが「1」、「0」であるかどうかを比較し、新しいリストに「#」、「
  • 」を入れる配列である.
  • 5文字列、出力
  • 🏁 説明する

    
    def solution(n,arr1,arr2):
    
        new_arr1 = []
        new_arr2 = []
        sum_arr = []
    
        for i in range(len(arr1)):
            new_arr1.append(format(arr1[i], 'b'))
            if len(new_arr1[i]) < n:
                new_arr1[i] = (n-len(new_arr1[i]))*'0'+new_arr1[i]
            new_arr2.append(format(arr2[i], 'b'))
            if len(new_arr2[i]) < n:
                new_arr2[i] = (n-len(new_arr2[i]))*'0'+new_arr2[i]
    
    
        for i in range(len(new_arr1)):
            for j in range(len(new_arr2)):
                if new_arr1[i][j] == '0' and new_arr2[i][j] == '0':
                    sum_arr.append(' ')
                elif new_arr1[i][j] or new_arr2[i][j] == '1':
                    sum_arr.append('#')
    
        sum_arr = ''.join(sum_arr)
        answer = list(map(''.join, zip(*[iter(sum_arr)]*n)))
        
        return answer
    

    📌 环保形式的复印


    📌 ''.join()文字列的标志,文字列的唇膏



    🧩 別の解釈

    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
    

    📌 bin(i|j)

  • bin(i|j)[2:]前の0 bを除去して
  • を変換する.
  • 私のコードの同じ部分
  • new_arr1.append(format(arr1[i], 'b'))
    
  • 文字列変換
  • str(1)👉🏻# 危害)
  • 📌 rjust()

  • 文字列の前に0
  • を入力します.
  • 私のコードではこれと同じです.^^
  • if len(new_arr1[i]) < n:
                new_arr1[i] = (n-len(new_arr1[i]))*'0'+new_arr1[i]
  • 📌 replace()


    🧩 その他の解釈。

    
    solution = lambda n, arr1, arr2: ([''.join(map(lambda x: '#' if x=='1' else ' ', "{0:b}".format(row).zfill(n))) for row in (a|b for a, b in zip(arr1, arr2))])