문제 바로가기
접근 방법
- 이진수를 16진수로 변환한다.
- 16진수로 2차원 배열을 만든다.
- 생성된 2개의 배열을 합친다.
해설
- 16진수로 변환하는 내장함수가 있다.
format
- 16진수로 변환될 때 문자열로 변환해 주어야 하는데 예를 들어 2인 경우에는 10 으로 변환되에 앞에 0을 채워줘야 한다.
- 그렇게 만들어진 문자열을 배열로 변환한다.(2차원 배열을 보고 합쳐야 하기 때문)
- 만들어진 2개의 배열을 보고 하나라도 1이면 #으로 또 다른 배열을 하나 만든다. 그 외의 경우는 공백으로 한다.
- 배열을 문자열로 치환!
코드
def intTobinary(n, arr):
binaryNum = format(int(arr), 'b')
binaryNum = str(binaryNum)
if len(binaryNum) < n:
for i in range(n - len(binaryNum)):
binaryNum = '0' + binaryNum
return list(binaryNum)
def solution(n, arr1, arr2):
graph1 = []
graph2 = []
answer = [[0] * n for _ in range(n)]
for arr in arr1:
binaryNum = intTobinary(n, arr)
graph1.append(binaryNum)
for arr in arr2:
binaryNum = intTobinary(n, arr)
graph2.append(binaryNum)
for i in range(n):
for j in range(n):
if graph1[i][j] == '1' or graph2[i][j] == '1':
answer[i][j] = '#'
else:
answer[i][j] = ' '
answer[i] = ''.join(answer[i])
return answer