최종코드(코드링크)
def trans_binary(n, num, board):
for i in range(n-1, -1, -1):
if board[n - i - 1] == '#':
num -= (num // (2**i)) * (2**i)
continue
if num // (2**i) == 1:
board[n - i - 1] = '#'
else: board[n - i - 1] = ' '
num -= (num // (2**i)) * (2**i)
return board
def solution(n, arr1, arr2):
answer = []
board = [[''] * n for _ in range(n)]
for i in range(n):
trans_binary(n, arr1[i], board[i])
trans_binary(n, arr2[i], board[i])
answer.append(''.join(board[i]))
print(board)
return answer
먼저, 입력 받은 숫자를 이진수로 변환해주었습니다. 시간 복잡도를 줄이기 위해 이진수로 변환해주는 과정에서 board에 값을 저장할 때 '#' 또는 '0'으로 저장할 수 있도록 하였습니다.
그럼에도 시간초과를 걱정하였으나 다행히 한번에 통과!
시뮬레이션으로도 해결 할 수 있는 간단한 문제였습니다 :)
'알고리즘 문제 풀이' 카테고리의 다른 글
[백준 - Python] 15655. N과 M (6) (0) | 2024.08.12 |
---|---|
[백준 - Python] 15654. N과 M (5) (0) | 2024.08.12 |
[프로그래머스 - Python] 숫자 문자열과 영단어 (0) | 2024.08.09 |
[백준 - Python] 30804. 과일 탕후루 (0) | 2024.08.09 |
[백준 - Python] 17609. 회문 (0) | 2024.08.09 |