Algoritm/programmers

[programmers] LV1. [1차] 비밀지도

twoDeveloper 2023. 2. 20. 23:36

# 문제풀이

def solution(n, arr1, arr2):
    answer = []
    for i in range(n):
        # 10진수로 or 연산 후 2진수로 변환
        tmp = bin(arr1[i] | arr2[i])
        # 앞에 0을 붙이고 싶을 때 사용하는 함수 'zfill'
        tmp = tmp[2:].zfill(n)
        tmp = tmp.replace('1', '#').replace('0', ' ')
        answer.append(tmp)

    return answer

- bin() 내장 함수와 zfill(), replace()를 이용하여 해결하였다.

- 솔직히 zfill() 함수는 처음 본다...

- 풀이를 하자면 arr1[i] 와 arr2[i] 리스트를 or 연산자 ('|')를 사용하여 연산 후 bin() 함수를 사용해 10진수 -> 2진수로 변환시키고, zfill() 함수를 이용하여 변환된 2진수에 길이를 맞추기 위해 앞에 '0'을 삽입한다.

- replace()를 이용해서 1은 -> #으로 0은 -> ' ' 공백으로 변환시켜주면 해결~

 

# 문제출처

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

 

프로그래머스

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

programmers.co.kr