본문 바로가기
Problem Solving/Programmers

[프로그래머스/python/Lv1] 비밀지도

by Bokoo14 2023. 12. 14.
  1. 코딩테스트 연습 > 2018 KAKAO BLIND RECRUITMENT > [1차] 비밀지도
def solution(n, arr1, arr2):
    answer = []
    for i in range(n):
        intersectMap = str(format(arr1[i] | arr2[i], 'b').rjust(n, "0"))
        tmpString = ''
        for tmp in intersectMap:
            if tmp == '0':
                tmpString += " "
            else:
                tmpString += "#"
        answer.append(tmpString)

    return answer

 

해설

(format(arr1[i] | arr2[i], 'b') : arr1과 arr2를 비트연산자를 통해 or를 구해준 후, 2진수로 형태변환

str(format(arr1[i] | arr2[i], 'b').rjust(n, "0")): 변환된 2진수를 글자수를 맞춰주기 위해 rjust사용. 

rjust: n만큼의 글자수에 맞춰서 문자열 앞에 0으로 채워줌

 

한줄씩 돌면서 0일때는 tmpString에 공백을 추가, 1일때는 tmpString에 "#"를 추가

한줄이 끝나면 answer에 append