본문 바로가기

For all category

Dlbo's Post 연기 공지 ------------------------------------------------------- 연기 일시 : 11. 18, 11. 25까지 2주간. 연기 사유 : Linux System Programming 팀 프로젝트 마감 예상 복귀 일자 : 12. 3 ------------------------------------------------------- 프로젝트 마감이 코앞인데 2개 프로젝트중 1개도 아직 마무리가 안되어 포스팅을 쉽니다. 프로젝트 마감 후 프로젝트 내용에 대한 분석과 함께 원래 진행해야 할 포스트를 함께 게시하겠습니다. 더보기
Interpolation : Part 1 안녕하십니까 Mr. K입니다 2주 전까지 쓴 소재는 적당히 접기로 결정을 내린 터라, 다른 소재를 찾아야 하는데 소재가 없어서 늦게 찾았다기보단 그저 학교일이 바쁘네요 -_-; 그리고, 이전 소재에서 제목 앞에 붙여놓았던 R.A.M. 이 별로 의미가 없는 것 같아서 (R.A.M. = Realizable Abstract Matter or Material 이었으나, 이런걸 달아놓지 않더라도 수학적인 것에 대해 얘기를 하다보면 무의식중에 무한대나 무리수 등등, 컴퓨터에서 똑같이 따라하지만 실수에서 되는 계산이 깔끔하게 떨어지지 않는(예외는 있습니다, Maple이라는 프로그램은 √2를 입력하고 엔터를 치면 결과값에 그대로 √2가 출력이 됩니다) 경우가 많기 때문에 그냥 그때그때 해당하는 주제가 나오면 언급하기로.. 더보기
PKU 1979. Red and Black. AC #include char string[20][20]; int y,x=1; int cnt; void back(int yy,int xx) { cnt++; string[yy][xx]='#'; if(yy>0 && string[yy-1][xx]=='.') back(yy-1,xx); if(yy0 && string[yy][xx-1]=='.') back(yy,xx-1); if(xx 더보기
[공지] 11월 13일자 포스트 Mr. K입니다 오늘 올리기로 했던 포스트는 내일 올리겠습니다 소재는 오늘 찾아냈는데, 이걸 구현하는데 드는 시간이 좀 있는데다, 집에서 컴퓨터를 쓰는 사람이 셋이라 시간을 내기가 힘들군요 지나가다 들러주시는 분들이 얼마나 보시겠냐마는, 정시에 올리지 못해서 자꾸 공지를 띄우게 되어 죄송하게 생각합니다 =_= 더보기
탐방 - 1. NCSoft 오픈마루스튜디오에 다녀오다. 흐음. NCSoft의 오픈마루 스튜디오에 갔다 왔습니다. WoC 2008 행사를 위한 미니 간담회 였는데요. 당일날 디-_-카를 놓고가는 우를 저질러서 받아온 선물밖에 찍지 못했습니다. -_-;; 엔씨소프트 하면 일단 리니지는 아시지요? 오픈마루 스튜디오는 NCSoft 내의 웹 파트로, 스프링노트를 만든(진짜 공책 말구요 -_- 블로그!) 곳이라고 하면 아실지 모르겠습니다. zFanta님의 블로그에 있던 레몬펜 있지요? 것도 여기 오픈마루 스튜디오의 작품이에요 =_=! 저번주 월요일이긴 했지만...;; WoC라는 행사는 실무를 뛰지 않는 학생들을 위한 행사입니다. 대학생, 고등학생들은 학교에서, 혹은 책을 통해 배우는 것들이 실무와 너무 동떨어져 있는 면이 있지요. 이런 면을 위해서 실무자들과 학생들이 .. 더보기
동적인 단일 연결 리스트 (Singly Linked List) - 큐 안녕하세요~ 오늘도 찾아온 테슬라입니다. 오늘은 큐에 대해서 할 텐데요. 저번에 올린 스택과 비슷한 수준입니다. 우선 큐에 대해 알아볼까요? 큐는 한쪽 끝에서 데이터가 삽입되고, 삭제는 반대쪽에서만 할 수 있도록 되어있는 순서리스트의 자료구조인데요. 입력과 삭제가 반대이기 때문에, 먼저 삽입된 것이 먼저 삭제되겠지요? 예를 들어 자판기에서 종이컵을 넣을 때 먼저 넣은 종이컵이 사용할때도 먼저 나오지요? 그런식으로 삽입과 삭제가 반대 방향으로 이루어 진 것을 큐라고 합니다. 때문에 큐는 선입 선출(FIFO : First In First Out)리스트 라고도 하지요. 그렇다면 이러한 큐는 어떤식으로 나타날까요? 음 아래의 그림을 보시죠... 위쪽이 연결리스트로 구현한 enqueue(큐 삽입) 밑의 그림이 개.. 더보기
-_- 죄송합니다. 일이란게 한번 꼬이기 시작하니까 무한대로 꼬이네요 -_- 계속 시간에 쫓기느라 포스트도 제대로 못올렸습니다... 맨날 약속 못지키는 것 같아 죄송합니다만 -_- 담주 수요일부터 밀린 포스트 제대로 재개하겠습니다. 정말 죄송합니다. -_-;;;; 더보기
PKU 1979. Red and Black. AC get~ #include #include #include using namespace std; char a[101][101]; int b[101][101]; int total, m, n; void __fastcall isMovable(int x, int y) { total++; b[x][y] = 1; if (x - 1 >= 0) { if (a[x - 1][y] == '.' && b[x - 1][y] == 0) { isMovable(x - 1,y); } } if (x + 1 = 0) { if (a[x][y - 1] == '.' && b[x][y - 1] ==.. 더보기
PKU 1979. Red and Black 빨간 것과 검은 것 Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3868 Accepted: 2523 설명 정사각형의 타일이 덮어진 사각형 모양의 방이 있습니다. 각 타일은 빨간색 또는 검은색이 칠해져 있습니다. 한 남자가 검은색 타일 위에 서있습니다. 그 타일에서부터, 그는 붙어있는 4개의 타일중 하나로 움직일 수 있습니다. 단, 빨간색 타일로는 이동할 수 없으며 오로지 검은색 타일로만 이동할 수 있습니다. 위에서 설명한 방식으로 그 남자가 이동할 수 있는 검은색 타일을 세는 프로그램을 만드세요. 입력 입력할 것은 복합적인 데이터 집합들이 있습니다. 입력할 데이터 집합은 x- 축과 y- 축의 방향에 있는 타일의 갯수를 의미하는 두 개의 양정수로.. 더보기
PKU 1979. Red and Black Red and Black Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3868 Accepted: 2523 Description There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of four adjacent tiles. But he can't move on red tiles, he can move only on black tiles. Write a program to count the number of .. 더보기
[공지] 11월 6일자 포스트 안녕하십니까 Mr. K입니다 이번주 토요일(8일)에 시험이 하나 있고, 이번주 일요일(9일) 밤까지 자료구조 숙제를 끝내야 하는 관계로 이번주 포스트는 다음주에 올리도록 하겠습니다 학술제 준비와 관련해서 다다음주 목요일(20일)에도 포스트를 미뤄야 할 것 같지만, 일단 그건 그 주에 봐서 다시 공지 올려드리겠습니다 더보기
객체지향 이야기 5. MFC와 객체지향. // HelloApp.h: interface for the CHelloApp class. // ////////////////////////////////////////////////////////////////////// #include #if !defined(AFX_HELLOAPP_H__F398515F_9AAC_4AF5_8DAA_F0A1CE874AD3__INCLUDED_) #define AFX_HELLOAPP_H__F398515F_9AAC_4AF5_8DAA_F0A1CE874AD3__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class CHelloApp : public CWinApp { public: virtual BOOL .. 더보기
동적인 단일 연결 리스트 (Singly Linked List) - 스택 안녕하십니까~ 테슬라입니다 동적 단일 연결리스트의 응용이라 생각 할 수 있는 스택과 큐를 알아보도록 하겠습니다~ 음 오늘은 우선 스택을 알아보도록 할게요. 그렇다면 우선 스택이란 무엇일까요? 스택이란 여러 개의 물건들이 쌓여있는 것을 말합니다. 예를 들어 어릴 때 가지고 놀던 블록을 위로 차곡차곡 쌓듯이 쌓는 것 말이지요. 제가 여기서 말하고자 하는 스택은 비슷한 개념이라 할 수 있지요. 컴퓨터의 자료구조에서 나오는 개념으로 스택에 저장된 데이터 항목 중에서 나중에 삽입된 것이 먼저 삭제(출력)되지요. 우리들이 식당의 배식판을 생각해보면 맨 위에 쌓인 것이 가장 마지막에 쌓였겠죠? 하지만 일반적으로 배식판들은 맨 위에서부터 사용되어가지요. 이처럼 나중에 삽입되고 먼저 삭제(출력)되므로 후입선출이라고도 불.. 더보기
테슬라 포스트 살짝 연장 안내... 에에 안녕하세요... 월요일에 학교가 늦게 끝날 것 같습니다... 사실 지금 쓰려고 했지만 문득 내일까지 과제가 2개라는 사실이 기억나서... 아마 늦게 즈음에나 쓸 수 있을거 같아요... 되도록 빨리 시간 되는대로 쓰도록 하겠습니다... 더보기
PKU 3094. Quicksum AC 네요~ #include #include int main(void) { char index[1000]; int i=0,temp=0; while(1){ gets(index); temp=0; i=0; if(strcmp(index,"#")==0) break; while(index[i]!='\0'){ if(index[i]==' ') temp=temp; else temp=temp+((i+1)*(index[i]-64)); i++; } printf("%d\n",temp); } return 0; } 일단 문자열값을 입력받습니다. "#"인지 판별한뒤 맞다면 종료 아니라면 프로그램이 진행됩니다. 일단 문자열의 끝이 아니라면, 입력받은 값이 ' '(공백문자)인지 판별하여 맞으면 그냥 다음으로 넘어가고, 아니라면 temp에 해당 배열.. 더보기
PKU 3077. Rounders AC 네요~ include #include int main(void) { char index[10]; int i=0,j,k,count,out; scanf("%d",&count); for(k=0;k=1 ; j--){ if(j==1){ if(index[1]==':'){ index[1]='0'; index[0]='1'; } } else if(index[j] >= '5' || index[j]==':'){ index[j-1]++; index[j]='0'; } else index[j]='0'; } } out=atoi(index); printf("%d\n",out); } return 0; } 음 이상하게 짠듯하긴한데... 우선 저는 문자열 형태로 배열에 값을 입력 받았습니다. index[0]은 0으로 넣어두고 index[1]부터.. 더보기
PKU 2388. Who's in the Middle AC 네요~ #include void bubble(int a[], int n) { int i,j,temp,count=0; for(i=0 ; i 더보기
PKU 1804. Brainman AC 네요~ 음... 버블소트군요... 네...버블소트입니다... #include int bubble(int a[], int n) { int i,j,temp,count=0; for(i=0 ; i 더보기
PKU 서버 다운됐나?-_-; 현 시각 1시 19분. 접속 안됩니다. 크할할할 더보기
포스팅 연장 학교에서 안좋은 일이 자꾸 생기다보니(전 말짱해요) 담임선생의 종례가 1시간이 넘어가고 있습니다. 집에 있는 시간이 ㅇ벗어요 ㄷㄷ 시험 끝날 때 까지(11월 13일)는 약간 힘들겠네요. 더보기
R.A.M. #1. 무리수 √2의 값을 구해보자! : Stage 4 부제(?) : 글쓰는건 목요일에 시작했다는 -_-; 안녕하십니까 많이 늦었습니다// 원래 저녁먹고 한숨 잤다가 깨서 포스트를 미루는 공지를 썼었는데 잠이 다 깨고 나니 오늘 안에도 쓸 수 있을 것 같아(& 댓글 달린것도 없어서) 올렸던 공지를 내렸습니다 ..만; 결국 자정을 넘기고 마네요 -_-; Bisection Method(RAM 1-1)에서 Dlbo군이 댓글로 Newton's Method(이하 뉴턴메소드)를 언급해서 그것에 대해 쓸까 했지만 그건 도함수가 필요하니 환타군이 쓰기엔 아직 좀 무리가 있을 수 있지요; 또, 도함수를 쉽게 구할 수 없는 함수도 많습니다 -_-; 그리고 뉴턴메소드의 경우, 함수가 잘생겼다면 상관없지만 함수가 못생겼다면, 초기값(x0)을 실근의 추정값에서 멀리 잡을수록 발산할.. 더보기
객체지향 이야기 4. 생활속의 객체지향. 일상적인 생활 속에서도 객체지향을 만나 볼 수 있습니다. (이 글은 픽션입니다 -_-) ---------------------------------------------------------------------------------------- 컴퓨터공학과인 A군은 F학점을 면하기 위해 귀찮은 수업을 들으러 학교로 나섭니다.(-_-;;) 그리고는 하나의 객체를 마주하게 되지요. 자동차라는 객체. 아니, 자동차라는 클래스에서 '상속'된 경차 클래스의 객체중 하나입니다. 속성으로 제조사와 연식, 엔진의 배기량 및 여러가지가 있고... 현재 상태는 "과속"이네요. A군은 한마디 내뱉고 갑니다. "니가 뭔 스포츠카냐."(-_-...) 그리고는 학교에 도착합니다. 완벽한 군용 건물처럼 견고하기 그지없는 학교 건.. 더보기
오늘 츄리닝 차림으로 학교갔다 왔는데.... 같이 탄 사람들중에 유난히 이상하게 보는 사람이 몇 있더군요. 부평에서 하나, 주안에서 하나 -_-; 그냥 저는 "뭐지... -_-?" 했는데 네이트온 켰다가 갑자기 이런걸 봤습니다. http://pann.nate.com/b3352067 -_-; 설마.. 날 그걸로 오해한건 아니겠지?-_-?;; 더보기
동적인 단일 연결 리스트 (Singly Linked List) - 2 이야 안녕하십니까~? 테슬라입니다... 포스팅을 쓴지 오래된것 같군요...네 오래됬군요... 음음 각설하고 드디어 동적인 단일 연결리스트 2를 쓰게됬습니다... 이번 포스팅에서는 저번에 예고한대로 노드의 삭제와 리스트의 병합에 대하여 해볼까요? 음 우선 노드의 삭제는 연결리스트에서 필요없는 데이터가 있는 리스트를 삭제하는 것입니다. 음 예를 들어 1을 삭제하려고 한다면... 그림으로 표현하자면 이런식이겠군요... 음 그림처럼 1의 노드와의 연결을 끊어버리고 앞에서 다음 노드를 가리키면, 1의 노드와의 관계는 사라지겠죠? 이후 1의 노드를 free해주면 1의 노드와는 작별하게 되는거죠~ 코드로 나타내면 다음과 같습니다... NODE *deleteNode(NODE *p,int num) { NODE *prev.. 더보기
PKU 3094. Quicksum. AC #include #include main() { char string[256]; int i, lenth, sum; while(gets(string)) { if(strcmp(string,"#")==0) break; lenth=strlen(string); for(i=0, sum=0; i 더보기
가만보면 suggestion 카테고리가 하는 일이 없는데 -_-; notice에 있는 포스트 중 하나를 보면 '기타 건의사항등이 있으면 suggestion 카테고리에 올려주세요' 이랬는데 막상 건의사항은 없고 solving process에 있는게 적당한 것 같은 글이 2개가 있고 그러네 -_-; 이거 처리좀? -_-; 더보기
PKU 3077. Rounders. AC get~ #include using namespace std; int main() { int cases, cipher, data, i; cin >> cases; for (i = 0; i > data; cipher = 10; while (data / cipher != 0) { data += cipher / 2; data /= cipher; data *= cipher; cipher *= 10; } cout 더보기
PKU 3094. Quick sum. AC get~ #include #include using namespace std; int main() { string temp; int sum, i; while(getline(cin, temp)) { if (temp[0] == '#') { break; } sum = 0; i = 0; while(temp[i] != '\0') { if (temp[i] == ' ') { i++; continue; } sum += (i + 1) * (temp[i] - 'A' + 1); i++; } cout 더보기
PKU [3094]. Quicksum. [AC] #include #include char input[255]; int main() { int i; int sum = 0; int length; while(1) { gets(input); length = strlen(input); for(i=0 ; i 더보기
PKU 3094. Quicksum 고속합 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3382 Accepted: 2397 설명 검사합계는 데이터의 패킷을 검사하여 하나의 숫자로 되돌려 주는 알고리즘이다. 기본 구조는, 패킷이 변하면 검사합계 또한 변하고, 그러므로 검사합계는 전송상의 에러를 찾아내거나, 문서의 내용을 확인하거나, 그리고 바람직하지 않은 데이터의 변화를 찾아야 하는 수많은 경우에 필요된다. 이 문제에서는, 당신은 '고속합'이라고 불리는 검사합계 알고리즘을 충족시켜야 한다. 고속합 패킷은 대문자와 공백만을 허용한다. 그것은 언제나 시작과 끝을 대문자와 함께 한다. 반면에, 일반적인 공백과 문자는 , 연속적인 공백을 포함하여 어떤 조합도 만들 수 있다. 고속합은 각 .. 더보기