Dia Egg - Shugo Chara

Python공부/프로그래머스

(Python) 비밀지도 (프로그래머스 Lv.1)/.zfill()

별ㅇI 2023. 6. 16. 02:06
728x90
반응형

비밀지도(프로그래머스 Lv.1)

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

 

프로그래머스

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

programmers.co.kr

내 코드

def solution(n, arr1, arr2):
    answer = []
    _arr1 = []
    _arr2 = []
    result = ''
    for one in arr1:
        _arr1.append(list(bin(one)[2:].zfill(n)))
    for two in arr2:
        _arr2.append(list(bin(two)[2:].zfill(n)))
    
    
    for i, two in enumerate(_arr2):
        for j in range(len(two)):
            if two[j] =='1':
                _arr1[i][j] = '1'
                
    for i in range(len(_arr1)):
        for j in range(len(_arr1[0])):
            if _arr1[i][j] == '1':
                result += '#'
            elif _arr1[i][j] == '0':
                result += ' '
        answer.append(result)
        result = ''
                
    return answer

이 문제에서 가장 조심해야 할 점은 .zfill(n)으로 자릿수를 채워줘야하는 점과

'1'과 1을 구분해야 한다는 점이다. 

2진수로 바꿔서 리스트로 만들어진 1은 '1'인 반면,

만약 _arr1[i][j] = 1을 했을 때는 속성이 다르게 리스트에 들어가기 때문에

two[j] == 1을 했을때 잡히지 않을 수가 있다.! 

728x90
반응형