아무나개발하자

[1차] 비밀지도 본문

코딩테스트

[1차] 비밀지도

개발천재나천재 2023. 1. 11. 14:43

문제

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

 

프로그래머스

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

programmers.co.kr

 

 

풀이

def getBinaryNum(n, num):
    lists = []
    while True:
        remainder = num % 2
        num = num // 2
        lists.append(remainder)
        
        if num < 2:
            lists.append(num)
            break
            
    if len(lists) < n:
        add = n - len(lists)
        for i in range(add):
            lists.append(0)  
            
    lists.reverse()
    
    return lists

def solution(n, arr1, arr2):
    answer = []
    maps1 = []
    maps2 = []
    
    for elem1, elem2 in zip(arr1, arr2):
        maps1.append(getBinaryNum(n, elem1))
        maps2.append(getBinaryNum(n, elem2))        
    
    for map1, map2 in zip(maps1, maps2):
        add_list = []
        for elem1, elem2 in zip(map1, map2):
            if (elem1 == 1 or elem2 == 1):
                add_list.append("#")
            elif(elem1 == 0 and elem2 == 0):
                add_list.append(" ")
        _add = "".join(add_list)
        answer.append(_add)
    return answer

'코딩테스트' 카테고리의 다른 글

문자열 내 마음대로 정렬하기  (0) 2023.01.26
가장 가까운 같은 글자  (0) 2023.01.13
이상한 문자 만들기  (0) 2023.01.10
시저 암호  (0) 2023.01.09
다음 큰 숫자  (0) 2023.01.08