본문 바로가기

코딩테스트/Python

[프로그래머스] [1차]비밀지도

내 코드

def solution(n, arr1, arr2):
    
    sol=[]
    
    for a1,a2 in zip(arr1,arr2):
        c = str(bin(a1 | a2)[2:])
        c = "".join(['0' for i in range(n-len(c))]) + c
        sol.append(c.replace('0',' ').replace('1','#'))
    return sol

arr1 | arr2을 구해 이진수로 만들어주었다. 이때 이진수의 길이가 n이 돼야 하므로 부족한 0의 갯수만큼 더해준다. c에서 0을 공백으로, 1을 #으로 바꾸어 return 하였다.

 

다른사람 코드

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 처음본다. 공백을 메워줄 문자를 넣어주는 함수라고한다. ljust라는것도 있다.

이부분만 다르고 나머지는 똑같다!