JS - 한글야구 #4 (자모음 분리)

이석훈·2021년 7월 20일

출처
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=tk2rush90&logNo=221085154547

<script>
 //자모음 분리
        function getConstantVowel(kor) {
            const f = ['ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ', 'ㅁ',
                    'ㅂ', 'ㅃ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ',
                    'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ'];
            const s = ['ㅏ', 'ㅐ', 'ㅑ', 'ㅒ', 'ㅓ', 'ㅔ', 'ㅕ',
                    'ㅖ', 'ㅗ', 'ㅘ', 'ㅙ', 'ㅚ', 'ㅛ', 'ㅜ',
                    'ㅝ', 'ㅞ', 'ㅟ', 'ㅠ', 'ㅡ', 'ㅢ', 'ㅣ'];
            const t = ['', 'ㄱ', 'ㄲ', 'ㄳ', 'ㄴ', 'ㄵ', 'ㄶ',
                    'ㄷ', 'ㄹ', 'ㄺ', 'ㄻ', 'ㄼ', 'ㄽ', 'ㄾ',
                    'ㄿ', 'ㅀ', 'ㅁ', 'ㅂ', 'ㅄ', 'ㅅ', 'ㅆ',
                    'ㅇ', 'ㅈ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ'];

            const ga = 44032;
            let uni = kor.charCodeAt(0);

            uni = uni - ga;

            let fn = parseInt(uni / 588);
            let sn = parseInt((uni - (fn * 588)) / 28);
            let tn = parseInt(uni % 28);

            return {
                f: f[fn],
                s: s[sn],
                t: t[tn]
            };
        };
</script>

1. 자모음 분리 방법?

인터넷에 찾아보니 여러 방법이 있었지만, 위 출처의 글이 가장 직관적이고 이해하기 편하여서 내용을 참조하였다. 물론 모든 자,모음을 따로 분리하여 한 글자로 이루어 질 수 있는 모든 경우의 수를 만드는 방법도 있겠으나, 너무 비효율적이다.
이 글의 작성자 분은 각각의 글자에 대한 Unicode의 규칙을 찾고, 그걸 통해 함수를 만들어 분리가 될 수 있게 하셨다.

profile
Hello :>

0개의 댓글