· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Theme Coding

Á¦1ȸ KLDPCodeFest¿¡ ¿­·È´ø ThemeCodingÀÔ´Ï´Ù.

Á¡¼ö (¿©·¯ ¹ø Á¦ÃâÇϽŠºÐÀº ¸ðµÎ ÃÖÁ¾ ´ä¾È ±âÁØ)

Á¦ÃâÀÚ ±ÛÀÚ¼ö º¯¼ö»ç¿ë À¯È¿½Ã Á¡¼ö ºñ°í
-- À¯È¿ --
¼­»óÇö ´Ô 172ÀÚ 3°³ 172Á¡ ¿ì½Â
yui ´Ô 280ÀÚ 3°³ 280Á¡
-- ¹«È¿ --
Åä³¢±º ´Ô 153ÀÚ 2°³ 76Á¡ ¸¶°¨½Ã°£ ÀÌÈÄ
sliver ´Ô 163ÀÚ 2°³ 81Á¡ ¿Â¶óÀÎ Âü°¡
mithrandir ´Ô 168ÀÚ 2°³ 84Á¡ a-f°¡ À߸ø Ãâ·Â (¿ÀŸ)
cdpark ´Ô 150ÀÚ 3°³ 150Á¡ ¸¶°¨½Ã°£ ÀÌÈÄ


ÄÚµå ÆÛÁñ Á¦ÃâÇϽŠ´ä


1. cdpark ´Ô


#include <stdio.h>
#include <stdlib.h>

#define h(x) x+(x>9?55:48)

void o(int n)
{
        n?o(n/N),putchar(h(n%N)):0;
}

int main()
{
        o(strtol(X,0,M));
        return 0;
}


  • ±ÛÀÚ¼ö
  • º¯¼ö - 1°³
  • °á°Ý»çÀ¯ - ¿ÜºÎÇÔ¼ö »ç¿ë

#include <stdio.h>

void o(int n)
{
        n?o(n/N),putchar(n%N+(n%N>9?55:48)):0;
}

int main()
{
        char *x=X;
        int n=0;
        do
        {
                n*=M;
                n+=*x<97?*x-48:*x-87;
        } while (*++x);
        o(n);
        return 0;
}


  • ±ÛÀÚ¼ö - 150ÀÚ
  • º¯¼ö - 3°³
  • °á°Ý»çÀ¯ - ¸¶°¨½Ã°£ ÈÄ Á¦Ãâ

2. mithrandir ´Ô


#include <stdio.h>
#define b a/i
#define c X[i]
int main ()
{
  int a=0, i=0;

  while (c)
    {
      a *= M;
      a += (c <= 57)?c-48:c-87;
      i++;
    }
  i = 1;
  while (a / (i *= N));
  while ((i/=N)>0)
    {
      putchar (b<=9 ? b+48 : b+97);
      a %= i;
    }
}


  • ±ÛÀÚ¼ö - 168ÀÚ
  • º¯¼ö - 2°³
  • °á°Ý»çÀ¯ - a-f°¡ À߸ø Ãâ·ÂµÊ.

3. ¼­»óÇö ´Ô


#include <stdio.h>

int main() {
    char *x = X;
    int s = 0, i = 1;
    do {
        s *= M;
        s += (*x-(*x<'a'?'0':'a'-10));
    } while (*++x);
    do {
        i *= N;
    } while (i * N < s);
    while (i) {
        putchar(s/i+(s/i<10?'0':'a'-10));
        s %= i;
        i /= N;
    }
}


  • ±ÛÀÚ¼ö - 172ÀÚ
  • º¯¼ö - 3°³

4. sliver ´Ô (¿ì½Â)


#include <stdio.h>

void p(int v,int i)
{
        v ? (p(v/N,1),v%=N,v += v<10 ? '0' : 'a'-10,putchar(v)) : 0;
        if(!i) {
                for(;X[i];i++)
                        v = M*v + (X[i] <= '9' ? X[i]-'0' : X[i]+10-'a');
                v ? p(v,1) : putchar('0');
        }
}

int main()
{
        p(0,0);
}


  • ±ÛÀÚ¼ö - 163ÀÚ
  • º¯¼ö - 2°³

5. yui ´Ô


#include <stdio.h>
#define to_num( d ) ( ( d < '9') ? ( d - '0') : ( d - 'a'+10))
#define to_char( d ) ( (d > 10) ? ('a' + d - 10) : ( d + '0'))
int main()
{
    int v=0, i=0;
    while(X[i]){
        v+=to_num(X[i]);
        v*=M;
        ++i;
    }
    v/=M;

    i=v;
    while (i > N) {
        int k = 1;
        while(v > N) {
            v= v/ N;
            k*=N;
        }
        putchar(to_char(v%N));
        v = i - k*(v%N);
        i = v;
        v = i;
    }
    putchar(to_char(v%N));
}


  • ±ÛÀÚ¼ö - 280ÀÚ
  • º¯¼ö - 3°³

6. Åä³¢±º


#include<stdio.h>

int i,s;

int Q() {
    return s % N + 48 + (s % N > 9) * 7 +
           (s / N ? s /= N, putchar(Q()), 0 : 0);
}

int main() {
    while( X[i] )
        s = M * s + X[i] - (X[i++] < 64 ? 48 : 87);
    return putchar(Q());
}


  • ±ÛÀÚ¼ö - 153ÀÚ
  • º¯¼ö - 2°³
  • °á°Ý»çÀ¯ - ¸¶°¨ ÈÄ Á¦Ãâ

°ÅÀÇ ¿ÏÀüÈ÷ ¸ÂÃß¾úÀ» ¶§°¡ 8½Ã 8ºÐÀ̾úÀ¸´Ï... Âü ¾Æ±õ°Ô ¿ì½ÂÀ» ³õÃƽÀ´Ï´Ù. --Åä³¢±º

7. ±âŸ Àâ´ã


±¦È÷ ª°Ô Â¥´Â »ç¼ÒÇÑ °í¹Î¸¸ ÇÏ´Ù°¡ °á±¹ ¸ø Á¦ÃâÇߴµ¥.. ±× ÁßÀÇ ÇÑ °¡Áö°¡, <stdio.h>º¸´Ù int putchar(int);¸¦ ¾²´Â ÆíÀÌ 1±ÛÀÚ ÁÙ´õ±º¿ä. -cwryu

int putchar();·Î Çϸé 4±ÛÀÚ ÁÙÀÏ ¼ö ÀÖ½À´Ï´Ù. C¿¡¼­¸¸ Çã¿ëµÇ´Â.. -perky

¾Æ! ±× »ý°¢À» ¸ø Çß±º¿ä --Åä³¢±º

ª°Ô ¾²´Â°É Çغ¸Áú ¾Ê¾Æ ½À°ü´ë·Î Â¥¼­ ³Â³×¿ä. Å×½ºÆ® Á» Çغ¸°í Àß µÇ±æ·¡ ±×³É Á¦ÃâÇß½À´Ï´Ù. ¾ÐµµÀû(?)ÀÎ ±æÀ̱º¿ä. ÈåÈå. -- yui

Åä³¢±º ´ÔÀÇ ÇÁ·Î±×·¥¿£ ¾à°£ À§ÇèÇÑ Äڵ尡 µé¾î ÀÖ½À´Ï´Ù. Q ÇÔ¼ö ³»ºÎ¿¡ s¿¡ ´ëÇÑ ÇÒ´çÀÌ ÀÖ½À´Ï´Ù. C ¾ð¾î ¹®¹ý¸¸À¸·Î´Â (s /= N) ºÎºÐÀÇ °è»êÀÌ ³ªÁß¿¡ µÉ °Å¶ó´Â º¸ÀåÀÌ ¾ø½À´Ï´Ù. - cdpark

³×. ÄÄÆÄÀϸ¸ µÇ°í Á¦´ë·Î ½ÇÇàµÇ´Â Áö¸¸ È®ÀÎÇ߱⠶§¹®¿¡ º¸ÀåÀº ÇÒ ¼ö ¾øÀ» °Ì´Ï´Ù. (gcc¿¡¼­´Â µÇ¾úÁö¸¸ ¾îµð¼­ ¾î¶² ÀÏÀÌ ÅÍÁú Áö ¾Æ¹«µµ ¸ð¸£´Â Æøź ÄÚµå...¶ö±î¿ä. Äð·°.) --Åä³¢±º

7.1. cdpark (¸¶°¨ÈÄ ¹öÁ¯ÀÇ °³·®ÆÇ1)

int putchar();

void o(int n)
{
        n?o(n/N),putchar(n%N+(n%N>9?55:48)):0;
}

int main()
{
        char *x=X;
        int n=0;
        do
        {
                n=n*M+*x-48-(*x>64)*39;
        }while(*++x);
        o(n);
}


Åä³¢±º ´Ô ¹öÁ¯À» ºñ½ÁÇÑ ±ÔÄ¢(stdio.h Á¦°Å,...)À¸·Î °íÄ£°Íº¸´Ù 1 byte ª½À´Ï´Ù. ±×·¯³ª º¯¼ö´Â ¼¼°³. ½Ã»ó½Ä ÀÌÀü±îÁö ¸¸µé¾ú´ø ¹öÁ¯ÀÔ´Ï´Ù. submitÀº ¾È Çß°í..

7.2. cdpark (ultimate ÆÇ)

int putchar();

void f(char *x,int n)
{
    *x?f(x+1,n*M+*x-48-(*x>64)*39)
        :n?f(x,n/N),putchar(n%N+48+(n%N>9)*7):0;
}

int main()
{
    f(X,0);
}


ÆÛÅ° ´ÔÀÌ ¿øÇÑ ¼Ò½º°¡ ÀÌ°Å°ÚÁÒ? º¯¼ö µÎ°³! Àü¿ªº¯¼ö ¾øÀ½! Á¡¼ö´Â ´ë·« 60 Á¡? -- cdpark

warningÀÌ ³ªµµ »ó°ü¾ø´Ù¸é ÇÔ¼ö¼±¾ð¾Õ¿¡ void¶û int»©µµ µÉµíÇÕ´Ï´Ù. -- byteme

´ëȸ ±ÔÄ¢¿¡ -c99 -Werror ¿É¼ÇÀÌ ÀÖ´ä´Ï´Ù. -- cdpark



ÃÊ°í¼ö´ÔµéÀÇ ¾ÏÈ£°°Àº ¼Ò½º¸¦ º¸°í ÀÖÀÚ´Ï ´«ÀÌ µ¹¾Æ°¡°í ¸Ó¸®°¡ ±úÁú °Í °°±º¿ä. ¼Ò½º¿¡ ´ëÇÑ Çؼ³À» µ¡ºÙ¿©ÁÖ¼ÌÀ¸¸é ÁÁ°Ú½À´Ï´Ù. --¼¼¹ú

¼­»óÇö´ÔÀÇ Äڵ尡 °¡Àå ±âº»ÀûÀÎ ÇüŶó°í ÇÒ ¼ö ÀÖÀ» °Ì´Ï´Ù. ¸ÕÀú MÁø¼ö X¸¦ 10Áø¼ö·Î º¯È¯ÇÏ°í, ±× 10Áø¼ö¸¦ ´Ù½Ã NÁø¼öÀÇ ¼ö·Î º¯È¯ÇÏ´Â °Ì´Ï´Ù. ¼­»óÇö´Ô ÄÚµåÀÇ Ã¹¹ø° do-while loopÀÌ 10Áø¼ö·Î º¯È¯ÇÏ´Â ÄÚµå°í, ¸¶Áö¸· while loopÀÌ ´Ù½Ã NÁø¼ö·Î º¯È¯ÇÏ´Â ÄÚµåÀÔ´Ï´Ù. (°¡¿îµ¥ do-while loopÀº NÁø¼ö·Î º¯È¯Çϱâ ÀüÀÇ ÁغñÀÛ¾÷) ´Ù¸¥ ºÐµéÀÇ Äڵ嵵 ±âº»ÀûÀ¸·Î °°Àºµ¥, ÄÚµå ±æÀ̸¦ ÁÙÀ̱â À§Çؼ­ loopÀ» recursionÀ¸·Î Ç¥ÇöÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÑ °Ì´Ï´Ù. (´ëºÎºÐÀÌ µÎ¹ø° ´Ü°è, NÁø¼ö·Î º¯È¯ÇÏ´Â Äڵ带 recursionÀ¸·Î Ç¥ÇöÇÏ°í ÀÖ½À´Ï´Ù.) °³ÀÎÀûÀ¸·Î cdpark´ÔÀÇ ultimateÆÇÀº ƯÀÌ(?)ÇÏ°Ô »ý±ä ÄÚµå¶ó°í »ý°¢ÇÏÁö¸¸ ÇÁ·Î¼¼½º´Â µ¿ÀÏÇÕ´Ï´Ù. -- kane

ID
Password
Join
You plan things that you do not even attempt because of your extreme caution.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2004-11-24 22:44:38
Processing time 0.0084 sec