S E P H ' S

[Python] 2018 KAKAO BLIND RECRUITMENT [1차] 비밀지도 본문

Algorithm/Programmers

[Python] 2018 KAKAO BLIND RECRUITMENT [1차] 비밀지도

yoseph0310 2021. 7. 8. 16:12
 

코딩테스트 연습 - [1차] 비밀지도

비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다

programmers.co.kr

 

둘중 하나가 1이면 벽이 생기는, 즉 비트연산이 핵심이었던 문제였다. or 연산을 통해 문제를 풀었다.

 

def solution(n, arr1, arr2):
    answer = []
    for num1, num2 in zip(arr1, arr2):
        tmp = bin(num1 | num2)[2:]
        if len(tmp) < n:
            tmp = '0'*(n-len(tmp)) + tmp
        tmp = tmp.replace('1','#')
        tmp = tmp.replace('0',' ')
        answer.append(tmp)
    return answer

 

다른 풀이

def solution(n, arr1, arr2):
    answer = []
    for num1, num2 in zip(arr1, arr2):
        tmp = bin(num1 | num2)[2:]
        tmp = tmp.rjust(n, '0')
        tmp = tmp.replace('1','#')
        tmp = tmp.replace('0',' ')
        answer.append(tmp)
    return answer

위 코드에서는 2진수로 변환하면서 자리수를 맞추기 위해 tmp의 길이가 n보다 짧을때 0을 채운다는 것을 했는데

zerofill을 해주는 rjust 함수를 사용한 코드이다. rjust는 요소를 오른쪽 정렬을 하고 왼쪽에 원하는 것을 채워 넣을 수 있는 함수이다.