여기서 잠깐 닷넷에서 System::Object(C++ 제외 System.Object)가 하는 일에 대해서 설명드리자면,

  • .Net Framework 클래스 계층 구조의 모든 클래스를 지원하며 파생 클래스에 하위 수준 서비스를 제공합니다. 또한 .NET Framework의 모든 클래스 중에서 기본 클래스이며 형식 계층 구조의 루트입니다.

...라고 되어 있군요.

네이티브 C/C++로 치면......불행하게도 대응하는 것이 없군요 ㅠ

System.Object를 에뮬레이팅하기 위해서 짠 코드입니다.

정보경시대회와 상관 없는 모든 코드는 블로그의 CCL 라이센스와 상관 없이 GNU GPL 라이센스를 따릅니다. GNU GPL에 대한 자세한 정보는 http://www.gnu.org/licenses/gpl.html을 참조해 주십시오.

여담이지만 저는 이 코드를 CPP 파일이 아니라 헤더 파일에 썼습니다(System-String.h)

다음 목표는 System::String과 System::Type!

more..

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 하르퓨이아
네이버에도 이 블로그의 복사본[...]을 만들었습니다.
그런데 오늘부로 닉네임을 하르퓨이아로 바꾸게 되어서 네이버에 들어가서 닉네임을 바꾸려고 하는 순간......
사용자 삽입 이미지
네이버님께서 오늘 맛이 가셨군요.

네, 그런겁니다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 하르퓨이아

닉네임 변경.

2008/05/29 19:00
오늘부로 저의 닉네임이 하르퓨이아로 변경되었습니다.
......만, 여전히 애쉬라고 불러주셔도 됩니다.

현재 닉네임을 변경할 사용처
 - 각종 카페들
 - 블로그들(네이버, 티스토리)
 - 마비노기에서 새로 만들 울프서버 캐릭터
애쉬군 닉네임을 유지할 사용처
 - MSN 메신저
 - 마비노기 류트서버 캐릭터
Posted by 하르퓨이아

Devastating(절망)

2008/05/29 12:13

한영 2개국어로 쓴 글입니다.
하지만 절대로 한글이나 영어를 직역하려고 시도하지 마십쇼.
왜냐하면 뜻만 통하는 것으로 다시 바꾼 것이니까.

Devastating
 - Ash

When I see myself in a black room,
without anything left with myself,

When I see myself in a battlefield,
without seeing any mercy,

When I see myself in a world full with distraction,
which hamstrings my power,

I call it devastating.

절망
 - Ash

검은 방 속에 나 자신이 있는 것을 본다.
나에게는 아무 것도 남아 있지 않다.

전장에 서 있는 나를 본다.
주변에서 자비란 보이지 않는다.

유혹이 가득한 세상에 있는 나를 본다.
그것은 나의 힘을 자꾸 잘라 간다.

그것을 나는 절망이라고 부른다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 하르퓨이아
-Oil Fence Problem
기름 유출 사고가 발생하였다. 드넓은 바다는 NXN 격자 형태로 표현되는데, 한 개도 아닌 C개의 지점에서 기름이 유출되기 시작하려고 한다. 오른쪽의 격자는 N=6, C=6인 경우의 한 예로, 'X'로 표시된 격자가 기름이 유출된 지점이다.

기름은 'X'로 표시된 격자 상의 각 지점에서 순식간에 상하좌우 네 방향으로 동시다발적으로 퍼지게 된다. 이를 막기 위해서 오일 펜스를 설치해야 하는데, 한 격자에는 하나의 오일펜스를 설치할 수 있으며, 오일펜스가 설치되어 있는 격자로는 기름이 지나가지 못한다.(앞에서 말씀드렸듯, 대각선 방향으로는 이동이 없습니다.) 안타깝게도 정부에서는 고작 K개의 오일 펜스만을 보유하고 있다고 한다.

'#'으로 표시된 격자는 이미 오일펜스가 설치된 지점이다. 양식장이나 갯벌 등이 위치하고 있어서 우리가 방어해야 할 가장 중요한 지점은 '*'로 표시된 격자들이다. 우리는 가능한 적은 개수의 오일펜스를 설치하여 이들 중 어느 곳에도 기름이 도달하는 일이 없도록 하고 싶다. 이를 해결하는 프로그램을 작성하시오. 시간제한 : 2초, 메모리 제한 : 48MB(무슨 의미가 있을까만은...)

입력 첫째 줄에 N(5부터 40까지), C(1부터 100까지), K(1부터 20까지)가 빈 칸을 사이에 두고 순서대로 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 현재의 바다 상태가 격자로 표현되어 주어진다. 각 줄에는 길이 N인 문자열이 입력으로 주어지는데 각각의 문자는 'X', '#', '*' 또는 '.' 중 하나이다. 'X'는 기름이 유출된 지점, '#'은 오일펜스가 설치된 지점, '*'은 방어해야 할 지점, '.'은 그 외의 지점을 나타낸다.

출력 첫째 줄에 사용한 오일펜스의 개수 Q를 출력한다. Q는 K 이하여야 한다. 둘째 줄부터 K개의 줄에 걸쳐 오일펜스를 설치할 위치를 출력하는데, 가로줄 번호와 세로줄 번호를 빈 칸을 사이에 두고 출력하면 된다. 오일펜스가 이미 설치된 지점에 다시 설치하려고 하거나, 방어해야 할 지점에 오일펜스를 설치해서는 안 된다. 여러 해가 있다면 아무 것이나 하나 출력하면 되며, K개 이하의 오일펜스로 주어진 모든 '*'들을 방어하는 것이 불가능한 경우에는 첫째 줄에 '-1'만을 출력하면 된다.

----------------------
여기에서 강사 선배님의 힌트로 "네트워크 플로우를 사용해 보세요. 각각의 그리드마다 두 개의 Point를 두어서 모든 입력이 들어오는 포인트와 나가는 포인트로 각각 하고, 나가는 포인트에서 상하좌우의 그리드의 들어가는 포인트로 방향간선을 연결시킵니다. 그 다음에는 플로우의 기본 정리 Min-cut max-flow theorem을 사용하면 해결할 수 있습니다"가 있었습니다만, 도저히 이 개념이 나오니까 뭐가 뭔지 혼란스럽습니다.
일단은 플로우 네트워크에는 커패시티라는 개념이 존재하는데, 이 커패시티를 얼마로 잡고서 문제를 풀어야 하는지 모르겠고, 그 다음에는 포드 폴커슨을 가지고 대체 어째야 하는 것인지를 모르겠습니다. 어떻게 해결 방법이 없을까요[...]

특히 지귀씨, 이 글 좀 보면 SOS[...]
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 하르퓨이아

Infinite Loop

2008/05/27 12:14

do
{

나는 오늘
Infinite Loop에 빠져든다.

오늘도 나는 컴퓨터를 켠다.
숙제가 있다.
숙제를 한다.
놀아야겠다.
논다.
컴퓨터를 끄랍신다.
컴퓨터를 끈다.

내일도 반복.
정보경시를 풀어야겠다.
푼다.
논다.
컴퓨터를 끄랍신다.
컴퓨터를 끈다.

} while(true);

나는, 언제서야 유혹에 굴하지 않고 진짜 하고 싶은 일을 해 볼까.

-------------

넵, 갑자기 지귀씨 블로그 포스팅 스타일을 따라가는 느낌입니다.
수필형 시라고 보시면 됩니다[......]

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 하르퓨이아

보통 최단 경로를 구하는 데 많이 쓰이는 알고리즘은 Dijkstra's algorithm.
N^2의 시간을 가지고 있다는 이유 하나만으로 많이 쓰이고 있는데,
실제로는 코딩을 외우기가 굉장히 어렵더라고요[......]

반면에,
플로이드-워셜(우리나라에서는 그냥 플로이드) 알고리즘은 그래프에서 최단경로를 찾을 때 모든 정점에 대해서 최단경로를 구하는 방식입니다.
브루트 포스와 다이너믹의 중간 쯤에 있다고 볼 수 있지요.
브루트 포스라고 하는 이유는 모든 k, i, j에 대해 구하기 때문이며,
다이너믹과 약간 유사성이 있다고 하는 이유는 a~b까지의 경로가 최적이고 b~c까지의 경로가 최적이라면 a~c까지의 경로는 최적이라는 원리를 약간 활용하기 때문입니다.

C/C++와 이산수학 용어를 짬뽕한[...] 코드는 다음과 같습니다.

for(k=0;k<|V|;k++)
    for(i=0;i<|V|;i++)
        for(j=0;j<|V|;j++)
            Path[i][j] = min(Path[i][j], Path[i][k] + Path[k][j]);
return Path[Source][Destination];

보시다시피 O(N^3)이지만 연산이 단순하므로 conventional N에서는 다익스트라보다 나은 결과를 나타낼 수 있습니다.
(참고 : 다익스트라의 의사코드는 8+7줄입죠)

......자, O차수가 작은게 가장 최적이라고 누가 말했습니까? 하하하하하하!

ps. 이런 글을 올린 이유는 월하지귀씨(예전에 올렸던 창천뇌룡)의 프로그래밍 능력이 높다[...]는 것을 보고서 좌절했기 때문에 미쳐버린거[...]

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 하르퓨이아

Coming Soon.

2008/05/26 22:23

1999년에 만들어져 아직까지 쓰이고 있는 마이티 네트워크 3.2버전.

닷넷으로 마이티 네트워크를 새로 만들어 보려고 합니다

물론 비스타 카드놀이의 리소스를 해킹하던가 아니면 어떻게 방법을 찾아 볼 거라서 비스타 전용이 될 확률이 높겠군요(게다가 닷넷 3.5...)

이번 장담은 거짓말이 아닐겁니다(솔직히 7월이후 경시와 내신이 둘 다 없을 때는 과고에서 할일도 없음.)

Posted by 하르퓨이아

EBCDIC 유머 하나

2008/05/20 00:21
<원본>
Professor: So the American government went to IBM to come up with a data encryption standard, and they came up with—
Student: EBCDIC!


교수 : ...그리하여 미 정부는 IBM에게 부탁하여 데이터 암호화 표준을 만들어달라고 했습니다. 그래서 IBM이 생각해낸 것은-
학생 : EBCDIC!

대략 저것은 EBCDIC의 문제점을 제대로 꼬집는 거죠.
ASCII와 호환이 안 되고, 하나의 존 필드(비트 4개)에서 디짓 필드를(역시 비트 4개) 0~9번 영역밖에 쓰지 않습니다.
즉 존 필드 하나에서 낭비되는 영역이 엄청나고, A부터 Z까지 사이클 돌리는 프로그램 하나 만드는 데에도 수고가 많이 들어갑니다.

저는 처음에 EBCDIC이 8비트를 모두 쓰는 코드체계다-라는 말을 들었을 때는 그럼 128부터 255까지의 코드페이지가 EBCDIC인가?라고 생각했는데 알고보니 거기는 패리티비트의 필요성이 감소된 뒤 아스키를 확장시킨 거더군요. 기존 아스키 코드에서 쓰이지 않는 '패리티'를 모조리 0으로 만들어 놓고.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 하르퓨이아
사용자 삽입 이미지
......
아래에 있는 것은 DNA문제인데 왜 문제설명은 최대공약수지?

PS. 창천씨, 이 블로그를 본다면 합격여부 회신바랍니다

PPS. 고등부 열어보니 거기는 제대로 나와있더군요
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 하르퓨이아

BLOG main image
바람의 환상 교향곡
바람이......나를 가져가리라. by 하르퓨이아

공지사항

카테고리

전체 (80)
그림 (0)
소설 (25)
일상 (40)
게임 (6)
Tip & Trick (1)
프로그래밍 (6)
Urban Legends (1)
공부합시다 (0)

최근에 달린 레몬펜 쪽지

글 보관함

달력

«   2008/05   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Total : 14290
Today : 28 Yesterday : 51