https://programmers.co.kr/learn/courses/30/lessons/17681
코딩테스트 연습 - [1차] 비밀지도
비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다
programmers.co.kr
풀이 과정
파이썬의 내장함수 bin()을 이용해서 십진수 숫자를 이진수 문자열로 바꿔주었다
ex) bin(9) -> '0b1001'
bin(9)[2:] -> '1001'
지도의 한 변의 길이가 n이어야 하므로 문자열의 길이가 n 미만이면 문자열의 맨 앞에 0을 추가로 붙여준다
ex) '1001' -> '01001' (n = 5)
첫 째 지도, 둘 째 지도에서 위와 같은 방법으로 십진수를 이진수로 전환해주고, 양쪽 지도를 모두 살펴보면서 양쪽 지도 모두가 0이면 실제 지도에는 공백, 하나라도 1이면 실제 지도에는 '#'을 채워주면서 지도를 완성하고 출력해주면 된다.
소스 코드
def solution(n, arr1, arr2):
answer = []
arr1map = []
arr2map = []
for number in arr1:
temp = bin(number)[2:]
while len(temp) < n:
temp = '0' + temp
arr1map.append(temp)
for number in arr2:
temp = bin(number)[2:]
while len(temp) < n:
temp = '0' + temp
arr2map.append(temp)
for outer in range(n):
temp_answer = []
for inner in range(n):
if arr1map[outer][inner] == '0' and arr2map[outer][inner] == '0':
temp_answer.append(' ')
else:
temp_answer.append('#')
answer.append(temp_answer)
answer2 = []
for array in answer:
answer2.append(''.join(array))
return answer2
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 나누어 떨어지는 숫자 배열 [파이썬] (0) | 2022.06.16 |
---|---|
프로그래머스 - 같은 숫자는 싫어 [파이썬] (0) | 2022.06.16 |
프로그래머스 - 부족한 금액 계산하기 [파이썬] (0) | 2022.06.15 |
프로그래머스 - 나머지가 1이 되는 수 찾기 [파이썬] (0) | 2022.06.15 |
프로그래머스 - 최소직사각형 [파이썬] (0) | 2022.06.15 |