20. 비밀지도
코딩테스트 연습 > 2018 KAKAO BLIND RECRUITMENT > 비밀지도
https://programmers.co.kr/learn/courses/30/lessons/17681
Input value =
n: 한 변의 크기
arr1, arr2 = 정수 리스트(10진수)
n*n의 크기를 가지는 영 리스트를 만든다.
arr1,arr2 리스트의 원소들을 2진화 한다.
각 리스트 내의 리스트 마다 길이가 n이 되도록 0을 추가한다.
이중 for문을 이용하여,
4-1. if arr1(i)(j) == 1 or arr2(i)(j) == 1 일 경우, cnt +='#'
4-2. 아닐 경우, cnt += ' '
이 때, result는 반복문을 돌 때마다 초기화 되며,answer값에 append시킨다.
ㆍ 1 ≦ n ≦ 16
ㆍ arr1, arr2는 길이 n인 정수 배열로 주어진다.
ㆍ 정수 배열의 각 원소 를 이진수로 변환했을 때의 길이는 이하이다. 즉, 을 만족한다.
n = 5
arr1,arr2 = [9, 20, 28, 18, 11],[30, 1, 21, 17, 28]
def bins(arr):
for i in range(len(arr)):
arr[i] = format(arr[i],'b')
if len(arr[i])<len(arr):
arr[i] = str(0)*(len(arr)-len(arr[i]))+arr[i]
return arr
def solution(n,arr1,arr2):
answer = []
arr1,arr2 = bins(arr1),bins(arr2)
for i in range(n):
cnt = ''
for j in range(n):
if arr1[i][j]=='1' or arr2[i][j]=='1':
cnt+='#'
else:
cnt+=' '
answer.append(cnt)
return answer
# Code test
n,arr1,arr2 = 5,[9, 20, 28, 18, 11],[30, 1, 21, 17, 28]
solution(n,arr1,arr2)