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

shin·2022년 11월 25일
0

CodingTest 문제 풀이

목록 보기
77/79

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

풀이

def solution(n, arr1, arr2):
    maps = []
    for i in range(len(arr1)):
        rows = ''
        # OR 연산을 수행한 결과를 이진수로 변환
        result = str(format(arr1[i] | arr2[i], 'b'));
        # 이진수로 변환된 숫자의 자리수가 5보다 작으면
        if len(result) < n:
            # 앞에 0을 붙여서 n으로 자리수를 맞춤
            result = result.zfill(n)
        for s in result:
            if s == '1': # 1이면 #으로 표시
                rows += '#'
            else:
                rows += ' ' # 0이면 공백
        maps.append(rows)
    return maps
  • "지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다."
    • 따라서 OR 연산(|) 수행
  • OR 연산한 결과를 format으로 이진수로 변환
  • zfill(n)로 앞에 0을 붙여서 n으로 자리수를 맞춤
profile
Backend development

0개의 댓글