출저 : 정올 (http://www.jungol.co.kr/prog/Hanal/hanalView.php?qs_code=1370)


#include <stdio.h>

#define DEBUG  1


typedef struct {

    int requested_order;

    int start_hour;

    int end_hour;

}MEETING;


MEETING g_requested_meetings[501];

int     g_num_requested_meetings;

MEETING g_scheduled_meeting[501];


int  ScheduleMeetings();

void SortRequestedMeetings();

void PrintRequestedMeetings();


// input output

void SetInputFfromFile(char* fileName);

void PrintAnwserToFile(char* fileName, int i_last_meeting);


int main() {      

    

SetInputFfromFile("input.txt");    

PrintAnwserToFile("output.txt", ScheduleMeetings());

    

return 0;

}


void PrintRequestedMeetings() {

    int im;

    for (im = 1; im <= g_num_requested_meetings; im++){

        printf("%d %d %d\n", g_requested_meetings[im].requested_order,

                g_requested_meetings[im].start_hour,

g_requested_meetings[im].end_hour);

    }

}


// sorting by end_hour

void SortRequestedMeetings() {

    int i, j;

    MEETING temp;

int end_hour_i;

int end_hour_j;


    for (i = 1; i <= g_num_requested_meetings; i++) {

        for (j = i + 1; j <= g_num_requested_meetings; j++) {


end_hour_i = g_requested_meetings[i].end_hour;

end_hour_j = g_requested_meetings[j].end_hour;


if (end_hour_i > end_hour_j) {

                temp = g_requested_meetings[i];

                g_requested_meetings[i] = g_requested_meetings[j];

                g_requested_meetings[j] = temp;

            }

        }

    }

}



int ScheduleMeetings() {

MEETING last_meeting, new_meeting;

    int il, in;  // index of last_meeting, index of new_meeting    

    SortRequestedMeetings();


    if (DEBUG) PrintRequestedMeetings();

    il = 1;

    g_scheduled_meeting[il] = g_requested_meetings[il];


for (in = 2; in <= g_num_requested_meetings; in++) {

last_meeting = g_scheduled_meeting[il];

new_meeting  = g_requested_meetings[in];


if (DEBUG) {

printf("%d : %d\n", last_meeting.end_hour, new_meeting.end_hour);

        }


if (last_meeting.end_hour <= new_meeting.start_hour) {

g_scheduled_meeting[++il] = new_meeting;

}

}


return il;

}



void SetInputFfromFile(char* fileName) {

int i;


FILE *input = NULL;

input = fopen(fileName, "r");

if (input == NULL) {

fprintf(stderr, "file open error : %s\n", fileName);

return;

}


fscanf(input, "%d", &g_num_requested_meetings);

    for (i = 1; i <= g_num_requested_meetings; i++) {

        fscanf(input, "%d %d %d", 

&(g_requested_meetings[i].requested_order), 

&(g_requested_meetings[i].start_hour), 

&(g_requested_meetings[i].end_hour));

    }


fclose(input);

}


void PrintAnwserToFile(char* fileName, int i_last_meeting) {

int i;

FILE *output = NULL;

output = fopen("output.txt", "w");

if (output == NULL) {

fprintf(stderr, "file open error : %s\n", fileName);

return;

}


fprintf(output, "%d\n", i_last_meeting);

    for (i = 1; i <= i_last_meeting; i++) {

        fprintf(output, "%d ", (g_scheduled_meeting[i]).requested_order);

    }

    fprintf(output, "\n");


fclose(output);

}


저작자 표시
신고
by danguria 2012.11.11 16:04

개발 환경 세팅


임베디드 보드에 개발을 하기 위해서는 개발환경 세팅을 좀 해주어야 합니다.

이 부분은 인터넷을 찾아보면 다양하게 나와 있어 저도 많이 참고 했습니다.


많이 이용하는 방법은.

윈도우가 설치된 PC, 가상OS로 리눅스(HOST), 개발보드(TARGET)를 갖춘 상태에서,

서로를 연결하기 위한 공유기(로컬네트워크를 구축해야지요..), tftp, samba, nfs 를 이용하여 개발환경우 갖추었습니다.


다만 제가 가장 OS상에서 네트워크 설정을 잘 못해서 노트북에 리눅스를 설치에 버렸습니다.(다행이 노는 노트북이 있었네요.ㅎㅎ)


자 그럼, 제가 어떻게 세팅했는지에 대한 개략도입니다..



저작자 표시
신고
by danguria 2012.11.11 14:52

저는 학교에서 하드웨어에 의존적이지 않은 순수 소프트웨어 공부를 주로 해서 리눅스, 특히 하드웨어에 의존적인 부분에대해 잘 모릅니다. 회사에 들어오니 이런것들을 몰라서 힘든 부분이 있어 나름 공부를 해보고자 보드도 하나 사고, 리눅스 커널 책도 사서 공부를 하기 시작했습니다.(돈을 버니좋군요.ㅎㅎ)


제가 산 보드는 falinux에서 판매하는 G100-S5PV200입니다.(이런 숫자로된 이름 어려워요ㅠㅠ).

사실 리눅스 커널 공부하는데에 꼭 보드가 필요한것 같지는 않지만, 나중에 디바이스 드라이버도 공부해보고자 샀습니다.(사실 지름신때문이랍니다.ㅋㅋ)




잘못 사서 아까운 돈 날릴까봐 가장 싼것으로 샀습니다^^


자 그럼 오늘은 여기까지 하고 내일부터 개발환경 세팅부터 해볼까요?



저작자 표시
신고
by danguria 2012.11.11 14:28

안녕하세요, 오랜만입니다.^^

누구한테 인사를 드리는지 모르겠지만요.ㅎㅎㅎ (나중에 다시 읽어 볼 나를 위해서??)


학교 졸업함과 동시에 블로깅과 기타 메신저와 담을 쌓고 지냈네요..

한 2년이 다되었는 것 같습니다.


그동안 저는 회사에 들어가서 회사에 적응하느라 바깥 세상에 소흘히 하고 있었네요..

그사이에 많은 일이 있었습니다.

돈도 벌게 되고, 이사도 하고,,,


그중에서 가장 큰일은 사랑하는 사람과 함께 살게 되었습니다!!!

제가 가장 사랑하는 사람입니다^^

하지만 가장 잘해주고 있지 못한다는 생각이 드네요.ㅠㅠㅠ


아, 갑자기 다른 곳으로 빠졌네요..ㅋㅋ

다시 본론으로.


이제 다시 블로그를 꾸며 볼 생각입니다.

그동안 회사에 적응하면서 나름대로의 생활 패턴이 생겼고, 앞으로 어떤 분야에 관심을

가져야할지 생각이 정리 되면서 공부를 하게 되었습니다.


그러다 보니 자연스럽게 블로그에 정리를 해야 겠다는 생각이 들었습니다.

당장 정리하기 시작할 것은 리눅스 커널프로그래밍과 알고리즘입니다.


매번 이것 찔끔 저것 찔끔 손대다 보니 내공이 제대로 쌓이지 않은것 같아서,

우선 이 두가지를 끊기 있게 하려구 합니다.


잘 했는지 확인하기 위해서 나름 목표를 세웠습니다.


1. 사내 알고리즘 대회 입상

 음.. 사내에 뛰어난 사람들이 많지만 나도 할수 있다고 생각합니다!!!


2. 리눅스 커널책 끝까지!!! 읽기

끝가지 읽기.. 이것이 가장 어려운것 같습니다. 잘 해보렵니다!!

대상 커널은  falinux에서 산 G100-S5PV210 보드에서 할 겁니다..^^



다들 잘 부탁 드립니다.

저작자 표시
신고
by danguria 2012.11.11 14:25
| 1 |

티스토리 툴바