[Programmers/프로그래머스] 2018 KAKAO BLIND RECRUITMENT [1차] 비밀지도 - Python/파이썬 [해설/풀이]

SihoonCho·2022년 9월 20일
0
post-thumbnail
[Programmers/프로그래머스] 2018 KAKAO BLIND RECRUITMENT [1차 코딩테스트]
  1. [Lv. 1] 비밀 지도
  2. [Lv. 1] 다트 게임
  3. [Lv. 2] 캐시
  4. [Lv. 3] 셔틀버스
  5. [Lv. 2] 뉴스 클러스터링
  6. [Lv. 2] 프렌즈4블록
  7. [Lv. 3] 추석 트래픽

📌 문제


📝 입력 형식


💻 출력 형식


📖 입출력 예제


📌 풀이


def solution(n, arr1, arr2):
    # n자리 2진수 변환 및 지도1/지도2 복호화
    map1, map2 = [], []                                             # 지도1, 지도2
    for line1, line2 in zip(arr1, arr2):                            # 지도1/지도2 동일행에 대하여
        binary1 = str(format(line1, 'b')).zfill(n)                  # 지도1, n자리 2진수 문자열 변환
        binary2 = str(format(line2, 'b')).zfill(n)                  # 지도2, n자리 2진수 문자열 변환
        map1.append(['#' if i == '1' else ' ' for i in binary1])    # 지도1, 1이면 '#', 0이면 ' '
        map2.append(['#' if i == '1' else ' ' for i in binary2])    # 지도2, 1이면 '#', 0이면 ' '
    
    # 전체지도 복호화
    answer = []
    for line1, line2 in zip(map1, map2):                            # 지도1/지도2 동일행에 대하여
        line = ''                                                   # 전체지도 임시행 = 지도1/지도2와 동일행
        for elem1, elem2 in zip(line1, line2):                      # 지도1/지도2 동일열에 대하여
            line += '#' if elem1 == '#' or elem2 == '#' else ' '    # 둘 중 어느 하나라도 '#'이면 전체지도 '#'
        answer.append(line)                                         # 전체지도에 행 추가
                
    return answer
profile
꾸준히 노력하는 개발자

0개의 댓글