크리스마스에는 코딩을..


'Computer' 카테고리의 다른 글

TopCoder SRM 567 Div1  (2) 2013.01.21
TopCoder SRM 566 Div2  (2) 2013.01.13
time(NULL) 없이 srand하기.  (0) 2012.12.11
디버깅을 쉽게 하는 define  (1) 2012.11.26
COCI 2007/2008 Regional ~ JEDNAKOST  (0) 2012.11.24

잘 보니까 LaTeX 코드 그냥 갖다 써도 먹힌다 -_-

심지어 다음에서 설정해놓은 예제들보다 훨씬 보기도 편하고 기능도 좋음.

아래 주소에서 LaTeX 코드 사용법을 익히고 나서 쓰니까 이것도 쓸만하네 ㅎㅎ

(e.g. 띄어쓰기, ...)

http://www.codecogs.com/products/eqneditor/editor.php?mode=NEW

'LaTeX' 카테고리의 다른 글

LaTeX에 도표/그래프 그리기: TikZ Package  (0) 2014.10.31

/*seed는 지역변수, seed2는 전역변수*/

srand((long long)(main)*((long long)(&seed)|(long long)(&seed2))*(long long)(long(stdin)|long(stdout)|long(stderr)));


이랬더니 simulated anealing이 먹힌다 ㅋㅋ

우연은 아닌 것 같고, 변수가 많아지다보니 랜덤성이 증가한걸까?

'Computer' 카테고리의 다른 글

TopCoder SRM 566 Div2  (2) 2013.01.13
Christmas Tree Drawer  (0) 2012.12.25
디버깅을 쉽게 하는 define  (1) 2012.11.26
COCI 2007/2008 Regional ~ JEDNAKOST  (0) 2012.11.24
Create Binary Trees using Javascript and HTML5 Canvas  (0) 2012.11.13

#define eprintf(...) fprintf(stderr, __VA_ARGS__)

12612151=55

와 같은 식이 주어졌을 때,

1+26+12+15+1=55

처럼 등식이 성립하게 만들어서 출력하는 문제다.

제한 조건은 ( 식의 길이 ) ≤ 1000, ( 오른쪽 항의 값 ─ 자연수 ) ≤ 5000 이고,

답은 유일하진 않지만 항상 존재하며,

더하기의 개수를 가장 적게 하는 것중 하나를 출력하면 된다.

채점 : http://www.acmicpc.net/problem/2978

*주의 : 1+0001+1=3 은 올바른 출력이다. 즉, Leading Zero가 있어도 된다.

http://thecodeplayer.com/walkthrough/create-binary-trees-using-javascript-and-html5-canvas


와 멋지다! 코드플레이어도 신기하고, 캔버스 객체도 정말 신기하다 ㅋㅋ

공부해서 꼭 써봐야지.

P.S.

다시 코드플레이어를 들어가보니까..ㅋㅋ

자바스크립트랑 HTML5, CSS3 공부하기 재밌는 사이트를 찾은 것 같다

http://thecodeplayer.com/

Learn HTML5, CSS3, Javascript and more...

Video style walkthroughs showing cool stuff being created from scratch



#1. Count the number of outer loops.

버블 소트에서의 바깥 루프 세기.

약간 최적화된 버블 소트에서의 바깥 루프가 얼마나 도는지 세는 문제입니다.

아래 문제를 보세요 ( 출처 : http://www.acmicpc.net/problem/1377 ).

int i;

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

int working = 0;

for ( int j=1; j<=N-i; j++ ) {

if ( arr[j] > arr [j+1] ) {

swap ( arr[j], arr[j+1] );

working = 1;

}

}

if ( !working ) break;

}

printf ( "%d\n", i );

여기서 과연 몇이 출력될까요?

잘 생각해보면 정말 간단합니다.


#2. Count the number of swaps.

버블 소트에서의 스왑 횟수 세기.

이건 아까의 문제보다 약간 더 복잡합니다.

생각이 복잡한건 아닌데, 코딩이 복잡하죠 ㅋㅋ

두 가지의 풀이법이 있는데,

하나는 Binary Indexed Tree ( Low Bit라고도 부르더군요 ) 를 이용한 풀이,

다른 하나는 Merge Sort를 이용한 풀이입니다.

(작성중)


예제를 들어 설명하겠다.

뚜껑이 닫혀있는 통조림 캔이 있다, 이 캔의 두께는 0.4cm이고, 지름은 8cm, 높이는 10cm이다.

이 때, 캔의 부피 (속의 빈 부분은 제외한 캔의 부피) 는 얼만큼인가?

간단한 것 부터 시작해보자.

원통의 부피를 구하는 식은 다음과 같다.

그리고 문제를 다시 생각해보면, 이렇게 해석해볼 수도 있다:

원통의 지름이 4cm에서 4.4cm으로 증가하고, 

높이가 10cm에서 10.8cm (위 아래 뚜껑)으로 증가할 때, 원통의 부피 증가량은 얼만큼인가?

이제 문제가 한결 간단해보인다.

양 변을 적절히 미분하면!

dr = 0.4, dh = 0.8

이제 답을 구할 수 있게 되었다! ㅎㅎ


http://heart4u.co.kr/tblog/292

http://wiki.kldp.org/Translations/html/Socket_Programming-KLDP/Socket_Programming-KLDP.html#select

Windows 환경에선 Winsock이 자체적으로 Asynchronous한 통신을 지원하는듯 한데,

Linux 환경에선 그런걸 찾을 수 없었다

그래서 대안을 찾은 것이 바로 Select와 FD_SET.


FD_SET은 말 그대로 File Descriptor들의 Set이다.

FD_SET을 선언 및 초기화하고,

거기에 상태가 궁금한 FD들 ( e.g. socket, stdin, file, ... ) 을 넣은 뒤

select()를 실행하면!

현재 읽기 가능한 FD, 쓰기 가능한 FD, 에러가 난 FD의 집합을 각각 얻어낼 수 있다.

확인하는 방법도 간단한데,

FD_ISSET()을 이용하면 된다.

이 얼마나 편리한가 ㅜㅜ

일단 지금은 코딩이 바쁘니

자세한건 다음에 추가.

간단히 API를 이용하면 됩니다ㅋㅋㅋ

/**********예시 코드 ( C언어 )***********/

#include <Windows.h>

#include <stdio.h>

#include <stdlib.h> /* * 콘솔의 글자와 배경 색을 변경해주는 함수. */ void setColor ( int Color ) { SetConsoleTextAttribute ( GetStdHandle ( STD_OUTPUT_HANDLE ) , Color ); } /* * 창의 크기를 변경하는 함수. */ void setConSize ( int row, int col ) { char buf[256] = {0}; sprintf ( buf, "mode con: lines=%d cols=%d", row, col ); system ( buf ); } /* * 커서의 위치를 X,Y로 옮겨주는 함수. */ void gotoXY ( int x, int y ) { COORD pos = { x, y }; SetConsoleCursorPosition ( GetStdHandle ( STD_OUTPUT_HANDLE ) , pos ); } /* * 커서를 보일지 보이지 않을지 결정하는 함수. */ void setCursorview ( char visible ) { CONSOLE_CURSOR_INFO cursor = { 1, visible }; SetConsoleCursorInfo( GetStdHandle ( STD_OUTPUT_HANDLE ) , &cursor ); }


참고 색상표 ( -1은 없는 색, 그냥 자리를 맞추기 위해 넣었습니다 )



'Computer' 카테고리의 다른 글

Bubble Sort - related problems. ( writing )  (0) 2012.11.11
Select-Based nonblocking I/O processing  (0) 2012.11.04
리눅스 콘솔 색상 변경  (0) 2012.11.04
POJ 1328 - Radar Installation  (0) 2012.09.16
C언어 기초 - 배열 (ppt자료)  (0) 2012.08.04