백준 16936 나3곱2

gmlwlswldbs·2021년 12월 20일
0

코딩테스트

목록 보기
92/130
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)

0개의 댓글