개발하면서/Algorithm,DS,PS

넥슨 면접 1번문제

오산돌구 2010. 2. 12. 11:32
반응형

현재 소장님이 작성하신 메모리 저장구조를 분석하고 있습니다. 일하다가 찾은 사이트에서 재미난 문제가 있어서 풀어봤습니다.(정말 일하다가? ㅋㅋㅋㅋㅋ)

Nexon 면접문제    (좀 오래됐음;;;)

 

뭐 genrator구하는것은 쉽게 되는데 1부터 5000까지의 숫자 중 generator인지 아닌지를 체크해주는 것이

메모리 저장구조에 있는 것을 써먹으면 좋을 것 같아 적용을 시작했습니다....

8bit * 625 = 5000~!! 딱 떨어지네요 문제도 이걸 원한 게 아닐까 생각합니다.

 

generator에 해당하는 비트에 체크를 해주고 나중에 이 비트를 검사해서 selfnum여부를 판별하는 구조입니다.

 

 

#include <stdio.h>
#include <stdlib.h>
const unsigned char mask[8] = {0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80};
unsigned short make_generator(int i);

int main(int argc, char *argv[]){
        unsigned char bit[625];
        int i, j;
        int k = 0;
        int sum = 0;
        int root, leaf;
        unsigned short generator;
        int self_num;
        for ( i = 0; i < 625; i++ )     {
                bit[i] = 0;
        }

        for ( k = 1; k < 5000; k++ )    {
                generator = make_generator(k);
                //printf("%d'sgenerator :%d\n", k, generator);
                root = generator >> 3;
                leaf = generator & 0x07;
                bit[root] = bit[root] | mask[leaf];
        }
        for ( i = 0; i < 625; i++ )     {
                for ( j = 0; j < 8; j++ )
                {
                        if ( (bit[i] & mask[j]) == 0 ){
                                self_num = (i << 3) | j;
                                printf("self_num : %d\n", self_num);
                                sum += self_num;
                        }
                }
        }
        printf("sum : %d\n", sum);
        return 0;
}
unsigned short make_generator(int i)
{
        int generator = 0;
        int org;
        int num;
        //org = i;
        generator += i;
        while ( i > 0 ) {
                num = i % 10;
                generator += num;
                i = i / 10;
        }
        //if ( org > 9 )
        //{
        //              generator += org;
        //}
        return generator;
}

 

원문에 해결한 답하고 45가 차이 납니다......

아놔....... 뭐가 잘못됐지? 라며 프린트도 하고 비교도 했는데 모르겠습니다

지금 보니 제가 generator에 대한 이해가 부족했네요. 한자리 자연수는 그 자체가 generator수로 처리를 했다는....

 

진행 하면서 많은 생각을 한것에 대만족 ㅋㅋㅋ

 

보시면서 잘못된 부분이나 수정했으면 하는 부분을 알려주시면 정말 감사하겠습니다~ : )

반응형