Das Ziel
Sortieren Sie die Zeichen anhand einer Reihe von Hangul-Silben in der nordkoreanischen Wörterbuchreihenfolge.
Einführung in Hangul-Silben
Hangul (한글) ist das koreanische Schriftsystem, das von Sejong dem Großen erfunden wurde. Hangul-Silben werden im Unicode-Punkt U + AC00 - U + D7A3 zugeordnet. Eine Hangul-Silbe besteht aus einem Anfangskonsonanten, einem Vokal und einem optionalen Endkonsonanten.
Die Anfangskonsonanten sind:
ㄱ ㄲ ㄴ ㄷ ㄸ ㄹ ㅁ ㅂ ㅃ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ
Die Vokale sind:
ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅢ ㅣ
Die Endkonsonanten sind:
(none) ㄱ ㄲ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅆ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ
Zum Beispiel 뷁
hat Anfangskonsonant ㅂ
, Vokal ㅞ
und Endkonsonant ㄺ
.
Südkoreanische Wörterbuchreihenfolge
Die Konsonanten und Vokale oben sind in der Reihenfolge des südkoreanischen Wörterbuchs sortiert. Die Silben werden erstens nach Anfangskonsonanten, zweitens nach Vokalen und schließlich nach (optionalen) Endkonsonanten sortiert.
Der Unicode-Block für Hangul-Silben enthält alle Konsonanten / Vokal-Kombinationen und ist vollständig in der südkoreanischen Wörterbuchreihenfolge sortiert.
Der Unicode-Block ist hier zu sehen , und die ersten 256 Zeichen werden zur Veranschaulichung gezeigt:
가각 갂 갃간 갅갆 갇갈 갉갊 갋갌 갍갎 갏감 갑값 갓갔 강갖 갗갘 같갚 갛개 객갞 갟갠 갡갢 갣갤 갥갦 갩갪 갫갬 갭갮 갱갲 갳갴 갵갶 갷갸 갹갺 갻갼 갿걀 걡걢 걡걢 걡걢 걡걢 걡걢 걣걤 걥걦 걧걨 걩걪 걫걬 걭걮 걯거 걱걲 걳건 걵걶 걷걸 걹걺 걻걼 걽걾 걿검 겁겂 것 겄겅 겆겇 겈겉 게겍 겎겏 겐겑 겒겓 겔겕 겖겗 겘겙 겜겝 겞겟 겢겣 겤겥 곂곃 겨격 겪겫 곂곃 계곅 곆곇 곈곉 곊곋 곌곍 곎곏 곐곑 곒곓 곔곕 곖곗 곘곙 곚곛 곜곝 곞곟 고곡 곢곣 곤곥 곦곧 골곩 곪곫 곬곭 곬곭 곰곱 곲곳
Zum Beispiel der folgende Satz (ohne Leerzeichen und Satzzeichen):
키스의고유조건은입술끼리만나야하고특별한기술은필요치않다
ist sortiert nach:
건고고기끼나다리만별술술스않야요유은은의입조치키특필하한
Wenn sich die Zeichenfolge in C ++ befindet std::wstring
, ist die obige Sortierung einfach std::sort
.
Nordkoreanische Wörterbuchreihenfolge
Das nordkoreanische Wörterbuch hat eine andere Konsonanten- / Vokalreihenfolge.
Die Anfangskonsonanten sind wie folgt sortiert:
ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㄸ ㅃ ㅆ ㅉ ㅇ
Die Vokale sind wie folgt sortiert:
ㅏ ㅑ ㅓ ㅕ ㅗ ㅛ ㅜ ㅠ ㅡ ㅣ ㅐ ㅒ ㅔ ㅖ ㅚ ㅟ ㅢ ㅘ ㅝ ㅙ ㅞ
Die Endkonsonanten sind wie folgt sortiert:
(none) ㄱ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㅆ
Wie im Süden werden die Silben erstens nach Anfangskonsonanten, zweitens nach Vokalen und schließlich nach (optionalen) Endkonsonanten sortiert.
Wenn der obige Satz gegeben ist, muss die Ausgabe sein:
건고고기나다리만별술술스조치키특필하한끼않야요유은은입의
Regeln
Wenn die Eingabe ein Zeichen enthält, das nicht in U + AC00 - U + D7A3 enthalten ist, ist dies nicht der Fall .
Da dies ein Code-Golf ist, gewinnt der kürzeste Code in Bytes.
가까나다따라마바빠사싸아자짜차카타파
(alle Anfangskonsonanten), 가개갸걔거게겨계고과괘괴교구궈궤귀규그긔기
(alle Vokale), 가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛
(alle nachfolgenden Konsonanten).