독도 광고 모금 캠페인


2009/05/26 00:07

permutations



from __future__ import generators


def xcombinations(items, n):
    if n==0: yield []
    else:
        for i in range(len(items)):
            for cc in xcombinations(items[:i]+items[i+1:],n-1):
                yield [items[i]]+cc


def xpermutations(items):
    return xcombinations(items, len(items))

if __name__=='__main__':
    '''
    for p in xpermutations(['0','1','2','3']):
        print (''.join(p))
    '''

    arr = xpermutations(['0','1','2','3'])

    print('indices[24][4]={')
    for item in arr:
        form = '{%s,%s,%s,%s},' % (item[0], item[1], item[2], item[3])
        print(form)
    print('}')
       

compatible with python 3.x+
Trackback 0 Comment 0
2009/02/06 08:24

Code Golf - Choose

원문


def c(t):
 s=1
 for i in range(1,t[1]+1):
  s=s*(t[0]-i+1)/i
 print s
c(input())


내 사이즈는 87바이트. 포럼을 보니 파스칼 삼각형을 이용하는 방법도 있는것 같은데. 1등은 39바이트. 내 코드의 반도 안된다. 어떻게한거지?

def c(t,s):
 for i in range(1,t[1]+1):
  s=s*(t[0]-i+1)/i
 print s
c(input(),1)


1바이트를 줄여 86바이트가 되었다.
Trackback 0 Comment 0
2008/12/12 10:14

Saving-time (python)

링크

첫 번째 코드 : 290바이트. 전체 61위 (2008.12.12. 오전 10시 현재)
s=' '
o='o'
n='\n'
c=[s*8,o,n,s*4,o,s*7,o,n,n,s,o,s*13,o,n,n,o,s*15,o,n,n,s,o,s*13,o,n,n,s*4,o,s*7,o,n,s*8,o]
i=[1,6,12,17,23,29,32,27,21,15,10,4]
a = raw_input().split(':')
h=i[int(a[0])%12]
m=i[int(a[1])/5]
c[h]='h'
if h==m:c[m]='x'
else: c[m]='m'
print ''.join(k for k in c)

- 출력되는 시계모양을 정의하는 코드사이즈를 줄이는데 치중했음
- 시계모양의 텍스트에서 어떤 패턴을 발견하면 더 줄일 수 있지 않을까 생각중.




Trackback 0 Comment 0