본문 바로가기

Coding test

[프로그래머스/Lv.1/파이썬] 비밀지도

https://school.programmers.co.kr/learn/courses/30/lessons/17681

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

소스코드

def solution(n, arr1, arr2):
    answer = []
    for i in range (n):
        secret = arr1[i] | arr2[i]
        maps = bin(secret)
        maps = maps[2:]
        maps = maps.rjust(n,'0')
        maps = maps.replace('1','#')
        maps = maps.replace('0',' ')
        answer.append(maps)
    return answer

풀이

1. 보자마자 비트 연산이 떠올랐다. -> | 연산자를 통해 숫자를 계산함

2. 숫자를 bin()함수를 사용해 2진수를 만들고 앞에 붙는 2진수를 나타내는 기호 0b를 제거한다.
3. 부족한 글자수를 채워준다

ex) 0011110 -> 1110 -> '### ' 이렇게 되지않게 하기 위함

4. 글자를 '#'과 ' '으로 바꿔주고 답 제출