[개발]programmers/Python3

Lv.1_[1차] 비밀지도

dowon 2023. 2. 22. 11:02

https://school.programmers.co.kr/learn/courses/30/lessons/17681?language=python3 

 

프로그래머스

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

programmers.co.kr

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

1. tmp에 arr1과 arr2를 2진법을 사용하여 바꾼다

  |연산자의 경우 자릿수의 숫자 하나라도 1이면 1을 출력하고 아니면 0을 출력한다

2. zfill을 사용하여 앞에 0을 붙여 n자리수로 만들어준다

  이게 필요한 이유는 1과 같이 n자리수가 안나오는 숫자들을 n자리수로 맞춰주기 위해서다

  여기서 [2:]를 사용한 이유는 2진법으로 바꾸면 앞에 0b라는 기호가 붙어져서 나오기 때문이다

3. 그 후 1을 #으로, 0을 공백으로 바꾸어준다

  replace함수도 2개를 연달아 쓸 수 있다는 것을 알게 되었다

4. answer리스트에 붙여준

'[개발]programmers > Python3' 카테고리의 다른 글

Lv.1_2016년  (0) 2023.02.22
Lv.1_크기가 작은 부분문자열  (0) 2023.02.22
Lv.1_숫자 문자열과 영단어  (0) 2023.02.21
Lv.1_K번째수  (0) 2023.02.21
Lv.1_두 개 뽑아서 더하기  (0) 2023.02.21