전체 글 227

[GCJ] Google Code Jam Qualification Round B 문제풀이

푼지는 좀 됐는데.. 기록상 올려둔다. Google codejam 2008 Qualification Round B 문제로 기차의 출발, 도착시간이 나오고, 필요한 기차대수를 구하는 문제다. NA로 가는 것들에 대해 도착시간이 늦은 순으로 정렬하고, NB로 가는 것들에 대해 출발시간이 빠른 순으로 정렬한 후, 최대한 안기다리고 바로바로 출발하도록 짝을 지어주면, 필요대수가 나옴.. list.c 소스 #include #include #include #include "link.c" #define INPUT_SIZE 100 void readList(ListNode *list_head, ListNode *list_head_R, int type, FILE *file_ptr, int list_cnt, int t); ..

Problem Solving 2008.07.31

[UVA] UVA 101 문제풀이

어제에 이어 오늘은 UVA 101 번을 풀어봤다. 100번과 비슷한 난이도겠지 싶었는데.. 꽤 시간이 걸렸다. 문제이해하는 것도 좀 오래걸리고;; 힘들게 linked list 이용해서 풀어서 제출했는데.. Time 초과라고 나오네;; 수행시켜보니 포인터로 처리해서 시간 별로 안걸리는데.. UVA쪽하고 환경이 안맞거나 머 그런듯하다.. 머 문제는 풀었으니.. 푼 것으로 하고 넘기기로.. list.c 소스 #include #include #include #include "link.c" #define INPUT_SIZE 10000 int main() { char sLine[INPUT_SIZE]; int i; char delim[] = "' '"; char command[10]; char command_to[1..

Problem Solving 2008.07.31

[UVA] UVA 100 문제풀이

UVA 라는 사이트를 알게 됐다. 알고리즘 문제들이 있고, 소스를 올려서 본인의 랭킹같은거도 나온다. 재미삼아 제일 첫번째 100번 문제를 풀어봤는데.. 그리 어렵지 않았다. include #include #include #define INPUT_SIZE 10000 int cycleLength(int n, int len) { len++; if(n == 1) return len; if( (n % 2) == 0 ) n = n / 2; else n = 3 * n + 1; return cycleLength(n, len); } int main() { char sLine[INPUT_SIZE]; int i; char delim[] = "' '"; int value1, value2; int small, large, l..

Problem Solving 2008.07.31

[GCJ] Google Code Jam Qualification Round A 문제풀이

어제 Google code jam(GCJ) Qualification Round가 있었다. 어제는 업무때문에 볼 여력이 없었는데, 오늘 시간이 좀 나서 어제 기출문제(?)를 한번 풀어봤다. 문제는 A, B, C로 나오고 각 문제별로 Smaill Input, Large Input 으로 나와있다. 문제 A는 비교적 금방 이해되어서 C 문법도 공부해볼겸 C로 짜봤다. 처음에 그냥 배열로 하다보니 반복처리하는거도 잘 안되고 해서 Linked List를 간단하게 구현해서 완성했다. ㅋㅋ 나온 output을 검증해보니 smaill 과 large 모두 한번에 Correct 다. 오호; 이맛에 프로그래밍을 하는군..싶다. 문제는 다음과 같고 Smaill파일과 Large 파일이 제공됐다. Problem The urban ..

makefile 에 대한 정리

가끔 makefile을 쓰면서도 기존에 쓰던걸 편집해서 명령어 단축키용도로만 써왔던거 같다. 책을 보다가 makefile이 의존성을 나타내는 기능이 있다는 걸 알고 정리겸 포스팅을 한다. 1. makefile의 기본형식 타켓(목표이름): 대상(조건파일) 명령어 2. 의존성 - 오른쪽 대상에 변경사항(파일의 변경시간 기준)이 있을 경우 왼쪽 타켓을 다시 실행 3. 생략형 $@ 목표 이름 $* 목표 이름에서 확장자가 없는 이름 $

리눅스 및 DB 2008.07.17

[리눅스] 시그널에 대하여

GNU 소프트웨어로 프로그래밍하기 라는 책을 보고 있다. make file의 각종 옵션이나 gdb같은 디버그 툴에 대해 평소 잘 몰랐던 의문들이 많이 풀리는 느낌이다. 그 와중에 시그널에 대한 내용이 있어, 평소 인증 소스상에 있던 sigset(SIGINT, SIG_IGN) 등의 문구가 기억나서 해당 내용을 조금 찾아봤다. 네트워크 프로그램 개발시에 알아두면 좋은 내용들.. 기본적인 시그널 정도는 기억하고 있자. 우리는 흔히 kill -9 pid로 9를 주면서도 9가 의미하는게 먼지 모르고 할 경우가 많다. 9가 SIGKILL 로 정의되있기 때문에 9를 주면 SIGKILL 시그널을 프로세스에 전달해 준다. 시그널 이름 설명 SIGHUP 터미널을 읽어버렸을때 발생한다. SIGABRT 프로그램의 비정상종료시..

리눅스 및 DB 2008.07.15

[책] 행복한 프로그래밍

임백준씨가 쓴 책들을 골라서 읽느라 본 책이다. 임백준씨의 책들이 대체로 프로그래밍의 재미에 대해 깨닳게 해준다는 측면에서 다른 책들과 유사한 느낌이었다. 간간히 나오는 문제를 풀어보는 재미도 쏠쏠했고, 수학관련 서적을 다시 한번 뒤적거리고 싶게 만들었다. 그리고, 프로그래밍의 고수가 되려면 '수학이나 알고리즘, 패턴 등으로 대변될 수 있는' 내공과 '다양한 프로그래밍 경험과 체험을 대변하는' 외공을 두루 갖추어야 한다는 점을 짧은 무협소설을 통해 잘 설명해 주고 있었다. 대부분의 개발자들이 본인이 사용하는 프로그램 언어나 API에 익숙해 지고 나면, 프로그램만 계속 해서는 더 발전이 없는 경우가 많다. 즉, 내공이 부족하여 외공수련만 해서는 더 늘지 않는 것이다. 3년차 개발자와 7년차 개발자의 차이는..

책 이야기 2008.07.14

{first 10-digit prime found in cosecutive digits of e}.com

임백준씨가 쓴 "임백준의 소프트웨어 산책"이란 책을 최근에 읽었다. 그중에 뒷부분에 '프로그래머 K씨의 하루'라는 짧막한 소설이 있었는데, 거기에 흥미로운 내용이 있었다. 구글에서 2004년쯤인가에 사진과 같은 광고판을 어느 고속도로에 붙였다고 한다. {e의 연속된 숫자중에서 10개로 이루어진 첫번째 소수}.com이라는 문구는 유능한 프로그래머를 찾고자 하는 구글의 작은 이벤트였던 것이다. 흥미로워서 실제로 저 수를 구하는 소스를 C로 짜봤다. ㅋㅋ 숫자가 10자리라 int형으로 안되서 double로 처리했음.. #include #include #include #include #define TOTAL_ROW 10000 #define EACH_UNIT 10 #define LOOP_CNT 2000 int i..

[책] 나는 프로그래머다

임백준 저자의 책들을 골라보느라 읽어보았다. 최근 몇년간 책을 워낙에 안읽어서인가.. 그동안 쓸만한 책들이 많이도 나와들 있는거 같다. 이 책은 IT쪽에 여러 사람들이 본인의 경험을 에세이식으로 기술한 책이다. 내가 SDS에 있어봐서 그런지.. SI나 IS실 계신분들이 쓴 내용들은 알고 있는 내용들이어서 그런지 내가 그쪽 방면에 회의를 느껴서 그런지 그리 와닿지는 않았다. 임백준씨가 비전공자 출신에 프로그램은 회사들어가서야 배웠다는 걸 읽고 조금 놀랐다. 그리고, 꿈을 위해 유학을 선택할 수 있었던 그 판단력도 부러웠다. 와닿았던 부분은 임백준씨가 유학시절 사내 교내에 아르바이트 모집공고 관련 글이었는데.. 본인은 Perl 언어를 전혀 몰랐음에도 'Perl관련 아르바이트'공고를 보고, 그날부터 Perl을..

책 이야기 2008.07.08

[책] 똑똑하고 100배 일 잘하는 개발자 모시기

RSS에서 서평을 보고 읽게됐다. 조엘 온 소프트웨어도 아직 못봤지만, 누군가의 서평에서 '팀장님께 권해드리고 싶은 책'이라는 문구를 보고, 우리 팀장님께도 한번 권해드려볼까 해서 읽어봤다. 피플웨어에서 얘기하는 내용하고 비슷한 내용도 많았던거 같고. 좋은 개발자가 되기 위해서 어떤 방법으로 연마해야 할까라는 생각도 들게 하는 책이었다. 역시나 개발 생산성과 좋은 프로그램을 하기 위해서는 뛰어난 개발자들과 함께 하고, 좋은 환경에서 근무해야 한다라는 점을 다시 한번 생각하게 했다. 저자가 채용시 유념해야 할 점으로 내세우는 내용 중에 다음 내용이 조금 인상적이었다. 포인터나 재귀같은 조금 생각해야 하는 문제를 냈을때 조금 생각을 하고 나서야 대답을 하는 개발자보다 직관적으로 코드를 쓰거나 답을 내놓을 수..

책 이야기 2008.07.08
반응형