티스토리 뷰

728x90
반응형

 

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

 

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

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

programmers.co.kr

 

 


 

 

<나의 풀이>

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

	# 주어진 리스트의 요소를 이진수로 바꾸기
    bin_arr1 = [format(i, 'b') for i in arr1]
    bin_arr2 = [format(j, 'b') for j in arr2]
	
    # 각 요소의 자릿수를 n으로 맞추기
    bin_arr1 = [i.zfill(n) for i in bin_arr1]
    bin_arr2 = [j.zfill(n) for j in bin_arr2]

	# 벽인지 공백인지 구분하여 answer에 넣기
    for i in range(n):
        for j in range(n):
            if bin_arr1[i][j] == '1' or bin_arr2[i][j] == '1':
                answer[i] += "#"
            else:
                answer[i] += " "

        if i != (n-1):
            answer.append("")
    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(),replace()를 사용한 것
728x90
반응형
댓글