Passion 450

지도서비스를 이용한 traceroute

네트워크 관리시스템을 만들다 보면 문제 해결을 위해서 traceroute를 할 경우가 많다. 이 때 traceroute를 하여 나오는 장비의 IP는 알 수 있지만 이 장비가 어디에 위치한 장비 인지를 알 방법은 없다. 물론 IP만 가지고 장비의 위치를 파악하는 것은 불가능하다. 따라서 부가적인 정보가 필요함은 당연한 일이다. 장비의 위치는 NMS(Network Management System)에서 가지고 있다. Traceroute를 해서 얻은 정보와 NMS에서 받은 장비의 위치를 바탕으로 지도위에 tracerouting 되는 패스를 그리는 프로그램을 작성해 보자!

Passion/My Idea 2006.12.04

single linked list에서 루프를 찾는 방법

- 오늘의 퀴즈입니다. 1) single linked list에서 루프가 존재하는지를 구하는 방법 hint) 거북이와 토끼의 경주에서 산꼭대기를 향해서 뛰어가지 않고, 트랙을 돌고 있다면? 답) 거북이와 토끼는 처음 만나서 경주를 하게 됩니다. 토끼는 육상 선수여서 그런지 엄청빠른 속도로 달릴 수가 있지요. 그에 비해 거북이는 엉그적 엉그적 느리게 걸어갑니다. 출발 소리를 들리고 토끼가 잽싸게 뛰쳐 나가죠. 이 놈의 속도를 측정하니 거북이의 두배나 빨랍답니다. 이에 비해서 거북이는 세월아 내월아 천천히 걸어가고 있었어요. 그런데 사실 토끼와 거북이의 경주는 산을 향해서 달리고 있었던게 아니었어요. 산꼭대기로 난 길이라고 생각했지만 산 주위를 계속 돌고 있는 길이었죠. 기억력이 나쁜 토끼는 자신이 산 주위..

Passion/Algorithm 2006.11.22

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

[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