目的
ハングル音節の文字列を指定して、文字を北朝鮮の辞書順にソートします。
ハングル音節の紹介
ハングル(한글)は、世宗大王によって発明された韓国語の書記体系です。ハングル音節は、UnicodeポイントU + AC00 – U + D7A3で割り当てられます。ハングル音節は、最初の子音、母音、およびオプションの最後の子音で構成されます。
最初の子音は次のとおりです。
ㄱ ㄲ ㄴ ㄷ ㄸ ㄹ ㅁ ㅂ ㅃ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ
母音は次のとおりです。
ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅢ ㅣ
最終的な子音は次のとおりです。
(none) ㄱ ㄲ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅆ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ
たとえば、に뷁
は最初の子音ㅂ
、母音ㅞ
、最後の子音がありㄺ
ます。
韓国語辞書順
上記の子音と母音は、韓国語の辞書順にソートされています。音節は、最初に最初の子音で、2番目に母音で、最後に(オプションの)最終子音でソートされます。
ハングル音節のUnicodeブロックには、すべての子音/母音の組み合わせが含まれており、完全に韓国語の辞書順にソートされています。
Unicodeブロックはここにあり、最初の256文字は説明のために表示されています。
가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛개객갞갟갠갡갢갣갤갥갦갧갨갩갪갫갬갭갮갯갰갱갲갳갴갵갶갷갸갹갺갻갼갽갾갿걀걁걂걃걄걅걆걇걈걉걊걋걌걍걎걏걐걑걒걓걔걕걖걗걘걙걚걛걜걝걞걟걠걡걢 걣걤걥걦걧걨걩걪걫걬걭걮걯거걱걲걳건걵걶걷걸걹걺걻걼걽걾걿검겁겂것겄겅겆겇겈겉겊겋게겍겎겏겐겑겒겓겔겕겖겗겘겙겚겛겜겝겞겟겠겡겢겣겤겥겦겧겨격겪겫견겭겮겯결겱겲겳겴겵겶겷겸겹겺겻겼경겾겿곀곁곂곃 계곅곆곇곈곉곊곋곌곍곎곏곐곑곒곓곔곕곖곗곘곙곚곛곜곝곞곟고곡곢곣곤곥곦곧골곩곪곫곬곭곮곯곰곱곲곳곴공곶곷곸곹곺곻과곽곾곿
たとえば、次の文(スペースと句読点なし):
키스의고유조건은입술끼리만나야하고특별한기술은필요치않다
並べ替え:
건고고기끼나다리만별술술스않야요유은은의입조치키특필하한
C ++では、文字列がの場合、std::wstring
上記の並べ替えは単純std::sort
です。
北朝鮮の辞書順
北朝鮮の辞書は、子音/母音の順序が異なります。
最初の子音は次のようにソートされます。
ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㄸ ㅃ ㅆ ㅉ ㅇ
母音は次のようにソートされます。
ㅏ ㅑ ㅓ ㅕ ㅗ ㅛ ㅜ ㅠ ㅡ ㅣ ㅐ ㅒ ㅔ ㅖ ㅚ ㅟ ㅢ ㅘ ㅝ ㅙ ㅞ
最終的な子音は次のようにソートされます。
(none) ㄱ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㅆ
南と同様に、音節は最初に最初の子音で、2番目に母音で、最後に(オプションの)最終子音でソートされます。
上記の文が与えられた場合、出力は次のようになります。
건고고기나다리만별술술스조치키특필하한끼않야요유은은입의
ルール
入力にU + AC00〜U + D7A3内にない文字が含まれている場合、それはドントケア状態になります。
これはコードゴルフなので、バイト単位の最も短いコードが優先されます。
가까나다따라마바빠사싸아자짜차카타파
すべての最初の子音)、가개갸걔거게겨계고과괘괴교구궈궤귀규그긔기
(すべての母音)、가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛
(すべての後続の子音)。