Algorithm/1일 1코테
[프로그래머스 Python] 비밀지도(from kakao)
대인보우
2020. 10. 13. 21:05
반응형
문제
programmers.co.kr/learn/courses/30/lessons/17681
코딩테스트 연습 - [1차] 비밀지도
비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다
programmers.co.kr
내 풀이
def solution(n, arr1, arr2):
for num, i in enumerate(arr1): #arr1을 숫자->이진수->#,공백으로 변환
b = bin(i)[2:]
if len(b) < n:
b = '0' * (n-len(b)) + b
b = b.replace('1','#')
b = b.replace('0',' ')
arr1[num] = b
for num, i in enumerate(arr2): #arr2도 마찬가지
b = bin(i)[2:] #bin을 써서 앞에 두개를 빼줌
if len(b) < n: #n 길이보다 작으면
b = '0' * (n-len(b)) + b #자릿수를 맞추기 위해 앞에 0을 붙여줌
b = b.replace('1','#')
b = b.replace('0',' ')
arr2[num] = b #숫자를 b로 변환
# arr1이 공백인데, arr2가 #이면 #을 넣어주는 과정
answer = []
for i in range(n):
a = ''
for j in range(n):
if arr1[i][j] == ' ' and arr2[i][j] == '#':
a += '#'
else:
a += str(arr1[i][j])
answer.append(a)
return answer
다른사람 풀이
def solution(n, arr1, arr2):
answer = []
for i,j in zip(arr1,arr2):
a12 = str(bin(i|j)[2:])
a12=a12.rjust(n,'0')
a12=a12.replace('1','#')
a12=a12.replace('0',' ')
answer.append(a12)
return answer
zip함수 - 동일한 길이의 리스트를 묶어주는 역할.
rjust - 패딩(채워주는 역할) ----> 함수가 있었다..
이렇게 간단하다니~~~~~~~~~~~~~!
반응형