본문 바로가기
문제 풀이/프로그래머스 (Programmers)

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

by 희조당 2022. 7. 5.
728x90

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

 

프로그래머스

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

programmers.co.kr


 문제 풀이

문자열에 대한 문제이다.

 

각 배열의 값을 이진수로 변환했을 때 비트 연산을 해주면 문제에서 원하는 대로

하나라도 1이면 1, 둘 다 0일 때 0으로 만들어 줄 수 있다.

이후 rjust() 함수로 자릿수를 맞춰준 다음에 '#'과 ' '으로 바꾸어주면 된다.

 느낀 점

문자열에 대한 함수를 모를 때 되게 긴 코드가 만들어졌지만 알고 나니 엄청 깔끔해졌다.

이게 내장 함수를 아는 힘..?

 코드

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

 

댓글