CodingTest/Programers

[programers] 프로그래머스 카카오(파이썬) : [1차] 비밀지도

JunJangE 2022. 1. 6. 01:37

문제

 

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

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

programmers.co.kr

알고리즘

- 두 개의 지도의 10진수를 2진수 n자리로 변환한다.

- 반복문을 통해 지도의 각 자리를 비교한다.

- 비교 과정에서 각 자리의 수를 더하고, 0보다 크다면 그 자리는 벽이 되고 0이라면 그 자리는 공백이 된다.

- 지도의 모든 자리를 확인 후 해독한 암호 지도를 리턴한다.

코드

def solution(n, arr1, arr2):
    answer = []

    temp1 = [format(i, 'b').zfill(n) for i in arr1] # arr1 => 2진수 n자리로 변환
    temp2 = [format(j, 'b').zfill(n) for j in arr2] # arr2 => 2진수 n자리로 변환

    # 반복문을 통해 지도의 각 자리를 비교
    for a1, a2 in zip(temp1, temp2):
        cnt = ""
        for k in range(n):
            # 각 자리의 수를 더했을 때 0보다 크면 : 벽
            if int(a1[k]) + int(a2[k]) > 0:
                cnt += "#"
            # 0보다 작으면 : 공백
            else:
                cnt += " "

        answer.append(cnt)

    return answer


# print(solution(6, [46, 33, 33, 22, 31, 50], [27, 56, 19, 14, 14, 10])) # 예시 코드

github

 

GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법

내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.

github.com