비밀지도는 숫자로 암호화 되어있음
위치를 확인하기 위해 암호를 해독해야함
n * n
1. 각 칸은 공백("")과 벽("#") 두 종류로 이루어짐
2. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있음
arr1 [9, 20, 28, 18, 11]
arr2 [30, 1, 21, 17, 28]
출력 ["#####","# # #", "### #", "# ##", "#####"]
예를들어
숫자 9 -> 1001
숫자 30 -> 11110 을 합쳐주겠다 (or연산하겟다)bin(9|30) => ob11111 출력됨
bin(9|30)[2:] => 11111bin(9|30)[2:].replace('1', "#").replace('0', " ") => 11111
bin(20|1)[2:].replace('1', "#").replace('0', " ") => # # #
따라서
_11
101 이렇게 연산을 수행해줘야함 (중요)
5
9 20 28 18 11
30 1 21 17 28
---
6
46 33 33 22 31 50
27 56 19 14 14 10
n = int(input())
arr1 = list(map(int, input().split()))
arr2 = list(map(int, input().split()))
# 1) 일반 방법
def sol1():
ans = []
for i in range(n):
ans.append(bin(arr1[i]|arr2[i])[2:].zfill(n).replace('1', '#').replace('0',' '))
return ans
# 2) packing (zip함수)를 사용한 방법
def sol2():
ans = []
for i, j in zip(arr1, arr2):
ans.append(bin(i|j)[2:].zfill(n).replace("1", "#").replace("0", " "))
return ans
print(sol1())
print(sol2())