퇴근5분전

 

 전 부터 몇번 시도했었지만.. 어렵던 오토마타가 성공했다.

전엔 검색해도 글이 얼마 없더니 엄청 늘어나있네...

참고자료 : http://ydongyol.tistory.com/m/30   <-- 오토마타 설명인데 중간에 이해 안되는 것들이 많다.

               http://i-coo.tistory.com/m/48     <-- 유니코드 분해, 결합

               http://cook.byus.net/wp/?p=475 <-- 가상키보드 만들기 ( ie10에선 안돌더라 )

 

 

제일 위에 분해 결합. 뷃 이란 글자를 분해하고, 다시 재결합한 모양.

 

아래 IN, OUT은 Step+를 통해서 하나씩 입력하게 해서 한글이 만들어지는 과정을 확인했음.

char[] inputChars = new char[] { 'ㄹ', 'ㅣ', 'ㄴ', 'ㅜ', 'ㄱ', 'ㅅ', 'ㅡ', 'ㄹ', 'ㅣ', 'ㄴ', 'ㅜ', 'ㄱ', 'ㅅ', 'ㅡ' };

 

 

 

구현한 내용은 두가지를 짬뽕해서 만들었는데, 실제 오토마타라기 보다 한글 끼워맞추기?

각 한글 자음 모음이 들어와서 저장하는 것은 오토마타 로직을 이용했는데,

초성 중성 종성은 계산에 의한것이 아닌 초성, 중성, 종성자 모음에서 찾아오는 것으로 살짝 바꿨다.

 

그리고 최종 찾은 문자들로 오토마타의 End1, End2에서는 각 문자를 결합하였고...

 

키보드 키를 눌러 각 문자가 들어왔을때 결합시점을 언제해야되는지 몰라서 오토마타 로직을 다시 보고 다시보고..

하루를 꼬박 보고 비슷하게 구현이 되었다. 약간에 오류를 수정하고나니 이제 된다.

 

오토마타와 다른 부분은 스택을 안썼다. 소스가 부분 부분 나온데다가 몇개의 소스를 내려받아서 봤는데

각기 다른 방식으로 구현이 되어있어서 분석이 어렵더라..

 

 한글이 각각 들어오는 부분과 오토마타 처리 로직과 비교해보면서 엑셀에 정리해서 코딩을 수정하면서

꼬박 하루 걸렸다.

 

 

 

 

 

 

 

 

 

'# 1) 프로그래밍' 카테고리의 다른 글

C#] 프로세스의 파일경로 읽어오기.  (0) 2014.05.30
가장 가까운 점 구하기  (0) 2014.02.08
달력 컨트롤] 새로 만든 달력!!!  (0) 2014.01.26
알고리즘] 2  (0) 2013.11.15
알고리즘] 1  (0) 2013.11.14