프로그래머스(Python) 풀이/Level.1

프로그래머스(Python) 17681번 [1차] 비밀지도 풀이

개발윗미 2022. 5. 9. 13:25

Python으로 구현한 17681번 [1차] 비밀지도 문제 풀이입니다.

 

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

 

코딩테스트 연습 - [1차] 비밀지도

비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다

programmers.co.kr


def solution(n, arr1, arr2) :
    answer = []
    temp1 = []
    temp2 = []
    for value in arr1 :
        value = bin(value)[2:]
        value = '0' * (n - len(value)) + value
        temp1.append(value)

    for value in arr2 :
        value = bin(value)[2:]
        value = '0' * (n - len(value)) + value
        temp2.append(value)

    for i in range(n) :
        value = ""
        for j in range(n) :
            if temp1[i][j] == '0' and temp2[i][j] == '0' :
                value += " "
            else :
                value += "#"
        answer.append(value)

    return answer

 

1. 전달받은 arr1리스트와 arr2 리스트의 요소를 각각 가져와 2진수 형태로 변환하고, n개의 길이를 채우기 위해 앞에 '0'을 채워 각각 temp1 리스트와 temp2 리스트에 추가한다.

 

2. temp1 리스트와 temp2 리스트의 각 위치를 확인하여 두 값이 모두 '0'일 경우 두 지도 모두 공백이므로 value에 공백을 추가한다.

 

3. 지도 하나라도 해당 위치가 벽일 경우 value에 "#"를 추가한다.

 

4. 하나의 열에 대한 확인 작업이 끝나면 answer 리스트에 value를 추가한다.

 

5. 모든 행에 대한 확인 작업이 끝나면 최종적으로 answer 리스트를 반환한다.