n = int(input())
b = list(map(int, input().split()))
ans = []
def go(l):
global ans
if len(l) == n:
for i in range(1, n):
if l[i-1] * 2 == l[i]:
continue
elif l[i-1] // 3 == l[i] and l[i-1] % 3 == 0:
continue
else:
return
ans = l
return
for i in range(n):
if b[i] not in l:
go(l + [b[i]])
go([])
print(*ans)
그냥 다 구해서 나중에 확인하면 오래 걸림. 되는 것만 구한다
n = int(input())
b = list(map(int, input().split()))
ans = []
def go(l):
global ans
if len(l) == n:
ans = l
return
for i in range(n):
if b[i] not in l:
if l[-1] * 2 == b[i]:
go(l + [b[i]])
elif l[-1] // 3 == b[i] and l[-1] % 3 == 0:
go(l + [b[i]])
for i in range(n):
go([b[i]])
print(*ans)