전체 글 1146

Merge sort

머지 소트의 기본 개념은 Divide and Quanqer 알고리즘이다. 리스트를 소트된 순서대로 쪼개가면서(1개의 엘리멘트가 나올때까지) 짜른 다음 두개의 리스트를 하나로 순서대로 합해가면서 소팅을 한다. * 간단하게 파이슨으로 머지소트를 구현해 보면 다음과 같다. 1 def mergesoft(list): 2 if len(list) 0 and len(right) > 0: 24 if left[0] 0: 29 for item in left: 30 result.append(item) 31 if len(right) > 0: 32 for item in right: 33 result.append(item) 34 return result

Passion/Programming 2006.11.21

구글 문제

문제1) 슬롯머신이 있다. 슬롯 0 부터 80까지 있는데, 그 안에는 1부터 100까지 중의 숫자가 증가하면서 쓰여져 있다. (즉 랜덤하게 20개의 숫자는 없다, 간단히 말하자면, 95, 96, 99, 100, 1, 4, 5, 6, .... 이렇게 생길 수 있다. ) 0번 슬롯에 81이 있을 수도 있고 2번이 있을 수도 있다. 만약 슬롯0번에 30 이라는 숫자가 증가되고 있을때, 80이라는 숫자가 슬롯에 있는지 찾아보는 가장 좋은 방법은??문제2) Array A와 B가 있다. A의 어레이는 x 길이 만큼, B의 어레이는 y 길이 만큼있는데, 안의 숫자는 오름차순이다. (반드시 연속적이지는 않다.) A와 B에 들어있는 교집합 값을 뽑아내는 가장 좋은 방법은? 친구가 구글 면접때 봤다는 시험문제...첫번째는..

Passion/My Idea 2006.11.20

Xbox360 구조

XBOX 360의 기본 구조는 PC와 비슷하면서도 전혀 닮지 않은 모습이다. CPU - 노스 브릿지 - 사우스 브릿지로 이뤄지는 PC와 달리 XBOX 360은 시스템의 중심에 GPU가 들어가게 된다. (XBOX 360의 내부 이미지와 칩셋 사진은 Anandtech에 올라온 것을 이용하였다) 이러한 XBOX 360의 내부 구조는 ATI가 프리젠테이션 자료를 통해 공개한 XBOX 360용 GPU 다이어그램에서도 확인할 수 있는데, GPU에 노스브릿지 기능이 들어가고 CPU는 GPU를 통해서 사우스 브릿지와 연결하게 된다. PC로 치면 노스 브릿지에 내장 그래픽 코어가 들어갔다고 생각하면 된다. (물론 PC와 다르게 XBOX 360은 GPU가 노스브릿지를 포함하는 구조다) PC보다 먼저 3.2GHz 트리플 코..

R&D/OS 2006.11.18

[C] 한줄씩 파일에서 읽기

#include void main() { FILE *fp; char s[81]; fp = fopen("input.txt", "r"); // 파일 열기 while(!feof(fp)) // 파일의 끝이 아니라면 { fgets(s, 80, fp); // 최대 80칸짜리 한줄 읽기 puts(s); // 한줄 출력 } fclose(fp);} Example 4: Write a function that sums up integers from a text file, one int per line.#include #include int main(int argc, char* argv[]){ FILE *fp; int score; int total=0; fp = fopen("score.txt", "r");..

Passion/Programming 2006.10.28

2기가 이상 파일을 열때( fopen 컴파일 옵션)

우연히 무지무지무지 무지큰(9기가 정도의 택스트파일) 파일을 여는 프로그램을 짠 적이 있다. 근데 이상하게 파일이 열리지 않는 문제점이 있었다. 쭈노는 한참을 해메다가 샤워를 하는데 번쩍 생각이 떠올랐다. 만약 파일 포인트가 32비트이면 2기가가 한계일 거고 그럼 파일을 열지 못하지 않을까? 역시 빙고^__^ 2기가를 넘는 파일을 열지 못하는 되어있었다. 찾아보니 이는 컴파일 옵션을 줘서 해결할 수 있었다. [CODE]gcc -D_FILE_OFFSET_BITS=64 -o main main.c[/CODE] 다음과 같이 ㅋㅋ

Passion/Programming 2006.10.17

OptParser 옵션 파싱

이건 Python 2.3(아마도) 부터 구현된 모듈이다. 쭈노는 커멘드 라인에서 받은 argument 처리는 좀 정리되었으면 좋겠다. 순서에 상관없이 분류할 수 있으면 좋겠고, 모듈기반으로 설계되어 같이 붙이기 좋으면 좋겠다. 이를 위해서 파이슨에서는 OptionParser 모듈을 제공한다. 이를 이용하면 좀더 깔끔한 코딩을 할 수 있다. from optparse import OptionParser [...] def main(): usage = "usage: %prog [options] arg" parser = OptionParser(usage) parser.add_option("-f", "--file", dest="filename", help="read data from FILENAME") parser..

Passion/Python 2006.10.16