전체 글 98

2009 정보올림피아드 지역본선 문제 Review (3)-3

이 포스트에서는 지난번에 올린 소스 코드가 어떤 식으로 구성되었는지 설명해 보겠다. (참 빨리 올린다...=_=;) 사실 문제를 풀 만한 사람이라면 설명할 필요조차 없는 문제와 코드였다. 문제의 단서는 여기에 있다. 주어진 논을 N × N 행렬로 볼 때 형이 특정 열에서 할당받는 구역의 개수는 바로 왼쪽 열에서 받은 구역의 개수보다 크거나 같아야 한다.문제에서는 이것이 제약조건처럼 나왔다. 하지만 만약 이 조건이 없다면 최적의 조건을 찾기 위해서는, 프로그램은 위-아래로 나누는 모든 경우를 읽어야 한다. 만약 그렇다면 1열을 1개, 2개, …, n개까지 나누는 각각에 대해 2열을 1개, 2개, …, n개까지 나누고, 그런 작업을 n열에 이르기까지 했어야 한다. 각 열마다 동생에게 할당되는 칸(위에서부터 ..

2009 정보올림피아드 지역본선 문제 Review (3)-2

지난번에 문제를 3번까지 올리다 만 사실조차 까먹고 말았다가 이제 깨달았다. 알고 보니 내 컴퓨터에도 문제를 풀어 놓은 소스가 없었다. (난 뭐-_-지 ㅜㅠ) 시험기간 중간에 낀 주말이지만, 무시하고 지나가기에는 너무 큰 문제라서 손을 대기로 했다. 그리고 코딩 따위를 금방 끝냈다. #include #include #include char table[20][20]; char solution[20], solving[20]; int total = 0; int size; int diff_now, diff_best; void tablein(); void divide(char col); void checknow(); void makesol(); int uppersum(); void finish(); int mai..

네이버 블로그 포스트 내용을 plain text로 보기.

(이 글에는 쓰이는 시점의 네이버 블로그 시스템이 반영되어 있으므로, 여기서 소개하는 지침은 나중에 사용 불가능할 수도 있습니다.) 저작권을 준수하는 사람으로서 이런 걸 올리면 안 되지만, 기본적인 (X)HTML 예의마저 안 지키는 네이버는 종종 엿먹이고 싶은 상대다. 일단 마우스 우클릭 방지 스크립트를 무력화하는 프로그램에는 IETOY Spell 알툴바-_- 등등이 있다. 최근에 네이버에서 이것들을 거의 모두 막았다. 자바스크립트에서는 아래 툴이 잘 알려져 있다. 물론 이걸 무력화시키기도 한다. javascript: function r(d) { d.on-contextmenu=null; d.on-selectstart=null; d.on-dragstart=null; d.on-keydown=null; d.o..

환타 오목 게임 재구성: 최종본.

지환태 님의 오목 게임 소스를 처음 접한 것은 올해 중순이었을 겁니다. 오목을 만들어 보겠다는 생각 자체를 하지 않았기 때문에 당연히 소스에 관심이 갔고, 소스 자체가 그다지 깔끔하지 못해서 리팩토링(refactoring)을 해 보고 싶었습니다. (환타[지환태] 님께서도 C언어를 배운지 얼마 안 되었을 때 만들었다고 고백하셨습니다.) 처음엔 허락도 받지 않고 시작한 재구성인데 환타 님께서 관심을 가져 주셨으며, 다섯 번에 걸친 재구성(R1, R2, R3, R4, R5)과 추가 수정으로, 나름 깔끔한 코드를 만들어 봤습니다. 아래가 드디어 최종본입니다. 제가 만든 코드는 하나의 메인 C 파일과 두 헤더 H 파일로 이루어져 있습니다. 지난번 재구성에 비해 소스와 파일명이 아주 약간 달라졌습니다. #inclu..

환타 오목 게임 재구성. (5)

드디어 check()를 줄일 아이디어를 구체화시켰습니다.-_- 현재 방식 그대로라면 모듈로 분리한다 해도 거의 아무런 차이가 없으므로, 아예 검사 방식 자체를 바꾸려고 했습니다만 그게 잘 안 되고 있었습니다. 뻘소리를 좀 하자면 오늘은 2010 수능 D-day이면서 2011 수능 D-364 즉 52주... 어차피 블로깅이 많이 줄었지만 앞으로 1년간 거의 잠수 탈 것 같습니다. 새로운 검사 방식을 소개합니다. 1. 검사 방식에 있어서 생긴 차이는 아닙니다만, 일단 check()는 x와 y 인자만 받습니다. turn 인자가 필요한데, (x, y) 인자를 정상적으로 받았다고 가정하면, board[x][y]가 turn 인자와 같습니다. 즉, int check(int x, int y, int turn) { in..

cdic-xml converter dev. (1)

일단 .cdic format 0.2의 형태를 분석해 보겠습니다. {음소, 공백 없음} [(스펠링)[(스펠링)]*] {설명} {음소, 공백 없음} [(스펠링)[(스펠링)]*] {설명} ....[위의 형식 반복] [빈 줄] {단어 표기} '[' [(음소)[(음소)]*] ']' '(' {어형} '...' {하위 어형} ')' {설명} {단어 표기} '[' [(음소)[(음소)]*] ']' '(' {어형} '...' {하위 어형} ')' {설명} ...[위의 형식 반복] [빈 줄] 이딴 식으로 해 놓으니 좀 정신이 없기는 합니다만, 일단 설명해 보겠습니다. ConlangDictionary 0.2에서 지원하는 데이터는 두 가지입니다. 하나는 음소이고, 하나는 단어입니다. 그리고 이것이 .cdic 포맷에서 그대로 드..

카테고리 없음 2009.09.26

C 언어로 .cdic 파일을 xml로 만드는 프로그램 만드는 중.

제가 스텔로라는 카페에서 활동 중인데, 쉽게 말해서(?) 언어를 창작하는 곳입니다. 제가 사실상 (매니저 빼면) 최초 멤버인데다 가장 꾸준해서-_- 활동 회원들을 주도하고 있습니다. 그곳에 최근에 전파되어 온 프로그램 중에서 ConlangDictionary(0.2)라는 게 있는데, 처음에 Zompist.com의 한 사용자가 만들어 올렸다고 하며 소스도 공개되어 있습니다. 굳이 인공 언어(Conlang, Constructed Language)를 위한 사전은 아니지만... 언어의 바닥이라고 할 수 있는 음성과 어휘를 파일에 관리해 주는 어플리케이션입니다. 인코딩 포맷을 자동으로(윈도는 US-ASCII 소위 ANSI로..-_-) 결정해 버려서, 덕분에 몇 가지 발음 기호들(가장 기본적인 ɸ나 ŋ마저도!!)이 ..

환타 오목 게임 재구성. (4)

이 코드를 리팩토링하기 시작한 후로 상당히 많은 시간이 흘렀는데.... 제대로 된 개선은 한 적이 없다. 미쳤구나. 시간이 많던 방학 동안에는 아예 안 건드렸다. 원래 check()를 바꿔 보려고 했습니다만 더 최적화시키기는 어려워 보입니다.-_-;; 대신에 move()의 길이를 좀 더 줄여 보도록 하겠습니다. /* five_in_a_row.h * by ZFanta & UNique */ #ifndef FIVE_IN_A_ROW #define FIVE_IN_A_ROW #include "tool.h" #define UP 72 #define DOWN 80 #define LEFT 75 #define RIGHT 77 #define ENTER 13 #define ESC 27 #define BOARD_SIZE 19 i..

ActiveX를 다운받게 하려면 브라우저 검사는 하란 말이다.. - HTML 브라우저 검사

구글 신의 도움을 받아 거미줄(web-_-)을 산책하던 중 이런 페이지를 발견했다. 젠장. ActiveX 설치를 권고하려면 브라우저가 MS IE인지 검사라도 하란 말이다. 저렇게 위험 요소가 득시글거리는 사이트에 들어가는 사람은, 혹은 애초에 저 사이트를 이용하는 사람들은 대개 IE를 사용하겠지. 파폭을 사용한다면 이 창을 보고 액티브엑스 설치인 줄은 알 테고. 하지만 기본적으로 원칙에 어긋나지 않는가. 방법. 자바스크립트의 navigator.userAgent를 이용한다. 자바조차 작동하지 않는 OS에는 상당히 미안하지만, 간단한 방법이다. 사이, ... 뒤에 이 코드를 붙여 넣으면 된다. 여기서 나오는 index.php가 싫다면 다른 페이지로 바꿔도 된다. 인터넷 익스플로러가 있어야 한다는 안내 페이지..

미친소 폐기일 카운터 수정본입니다.

미친소 잡는 날 남았습니다. 미친소 잡는 날 남았습니다. 저는 도아 님의 글에서 가져온 이 배너 원본을 상당히 오랫동안 달고 있었습니다. (HTML 표준만 아주 약간 수정했습니다.) ­ 얼마 전에 좀 더 수정했는데, 다른 분들을 위해 소스를 이 부분만 따로 올려 드리려고 합니다. MB = Mad Bulls 미친 소 잡는 날 남았습니다. ㅠㅠ See more... MB = Mad Bulls 미친 소 잡는 날 남았습니다. ㅠㅠ See more... Mad Bulls에 대한 간략한 설명과, 이 배너의 원본을 제공해 주신 도아 님의 글로 가는 링크가 추가되었습니다.