문제로 풀어보는 알고리즘 149쪽 문제 3.c 풀이

Posted 2012. 8. 31. 22:06 by 로제폰



역시 python. 몇시간을 생각해서 겨우 짰는데 n이 15,16 쯤 되면 너무 오래걸린다. 다른 분 코드 코드를 봤는데 역시 재귀적으로 짜서 느린건가. 


n = input("n : ")

ar = range(0, n)

idx = [1 for i in range(0, n)]


def func(ar, idx, now, level, n):

        mx = max(idx[:now])

        if now == n:

                for i in range(1, mx):

                        print [ar[x] for x,y in enumerate(idx) if y == i],",",

                print [ar[x] for x,y in enumerate(idx) if y == mx]

                return

        for i in range(1, mx+2):

                idx[now] = i

                func(ar, idx, now+1, mx, n)


func(ar, idx, 1, 1, n)



Write your message and submit
« PREV : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : ··· : 10 : NEXT »