메아리 저널

뻘코드 2009-08-08

껴헣헣.


1번 문제. 제출 당시 103B, 나중에 101B로 줄임. 인코딩에 아스키 코드가 많다는 점에서 착안하였음. 예상하는 최소 코드는 95B 근처.

u;main(v){for(;v=u++[(short*)"\310P$I\"E\"E$I(Q(Q$I\302D"];puts("."))for(;v;v/=2)
putchar(46-v%2*11);}

2번 문제. 제출 당시 (다소 문제가 있는) 208B, 나중에 205B로 줄임. 1번 문제와 상당히 흡사한 모양이지만 잔재주를 좀 발휘. 인코딩이 너무 긴 게 아쉽다. 예상하는 최소 코드는 180B 근처.

i,j;char c[6];main(v){for(;gets(c);)for(j=5;j--;puts(""))
for(i=0;i<5;++i-2||printf(".%c.",46-j%i++*11))
for(v="djjjddddddnbnhnnhnhnhhnjjnhnbnnjnbbhhhhnnjnjnhhnjn"[c[i]*5-240+j];v>3;v/=2)
putchar(46-v%2*11);}

3번 문제. 제출 당시 115B, 나중에 114B로 줄임. 단순하게 코딩하는 거 말고 다른 방법을 못 찾겠다. 예상하는 최소 코드는 110B 근처.

v,w,x,z=1e8;main(u){for(;~scanf("%d",&u);printf("%08d\n",x))for(x=0;u;x=(x+v)%z,u--)
for(v=w=u;--w;v=(v*1ll*u)%z);}

더 자세한 건 서울대 컴공과 아무나 붙잡고 물어 볼 것 알아서 봅시다.

이 코드는 2009년 카이스트-서울대 전산학과 교류 행사인 ESCamp의 숏코딩 대회에서 제출했던 코드였고, 어쩌다 보니 승부욕이 발동해 버려서(?) 우승했다(!). 이상야릇한 코드들 페이지에도 포함되어 있다. (2010-08-02)

이 글은 본래 http://arachneng.egloos.com/1585347에 썼던 것을 옮겨 온 것입니다.


(rev 71b35f804c1e)