Мета
Подавши рядок складів Хангул, сортуйте символи в порядку словника Північної Кореї.
Вступ до складів Хангул
Хангул (한글) - корейська система письма, винайдена Седжонгом Великим. Склади Hangul виділяються в точці Unicode U + AC00 - U + D7A3. Склад Hangul складається з початкового приголосного, голосного та необов'язкового кінцевого приголосного.
Початкові приголосні:
ㄱ ㄲ ㄴ ㄷ ㄸ ㄹ ㅁ ㅂ ㅃ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ
Голосні звуки:
ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅢ ㅣ
Кінцевими приголосними є:
(none) ㄱ ㄲ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅆ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ
Наприклад, 뷁
має початковий приголосний ㅂ
, голосний ㅞ
та кінцевий приголосний ㄺ
.
Порядок словника Південної Кореї
Вищезгадані приголосні та голосні впорядковуються в порядку словника Південної Кореї. Склади спочатку сортуються за початковими приголосними, по-друге за голосними, і, нарешті, за (необов'язково) кінцевими приголосними.
Блок Unicode для складів Hangul містить усі комбінації приголосних / голосних і повністю відсортований у порядку словника Південної Кореї.
Блок Unicode можна побачити тут, і перші 256 символів показані для ілюстративних цілей:
가각 갂 갃간 갅갆 갇갈 갉갊 갋갌 갍갎 갏감 갑값 갓갔 강갖 갗갘 갛개 객갞 갟갠 갡갢 갣갤 갥갦 갧갨 갩갪 갭갮 갯갰 갱갲 갳갴 갵갶 갷갸 갹갺 갽갾 갿걀 갿걀 걁걂 걃걄 걇걈 걉걊 걋걌 걍걎 걏걐 걑걒 걓걔 걕걖 걗걘 걙걚 걙걚 걙걚 걣걤 걥걦 걧걨 걩걪 걫걬 걭걮 걯거 걱걲 걳건 걵걶 걷걸 걹걺 걻걼 걿검 겁겂 것 겄겅 겆겇 겈겉 겊겋 게겍 겐겑 겐겑 겒겓 겖겗 겘겙 겚겛 겜겝 겞겟 겠겡 겢겣 겤겥 겦겧 겨격 겪겫 겮겯 결겱 겲겳 겴겵 겶겷 겸겹 겺겻 겼경 곀곁 겾겿 계곅 곆곇 곈곉 곊곋 곌곍 곎곏 곐곑 곒곓 곔곕 곖곗 곘곙 곚곛 곜곝 곞곟 곢곣 곤곥 곦곧 골곩 곪곫 곬곭 곮곯 곰곱 곲곳 곶곷 곸곹 곺곻 과 곽 곾곿
Наприклад, таке речення (без пробілів і розділових знаків):
키스의고유조건은입술끼리만나야하고특별한기술은필요치않다
сортується за:
건고고기끼나다리만별술술스않야요유은은의입조치키특필하한
У C ++, якщо рядок є std::wstring
, сортування вище є простим std::sort
.
Порядок словника Північної Кореї
Північнокорейський словник має різний приголосний / голосний порядок.
Початкові приголосні сортуються так:
ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㄸ ㅃ ㅆ ㅉ ㅇ
Голосні звуки сортуються так:
ㅏ ㅑ ㅓ ㅕ ㅗ ㅛ ㅜ ㅠ ㅡ ㅣ ㅐ ㅒ ㅔ ㅖ ㅚ ㅟ ㅢ ㅘ ㅝ ㅙ ㅞ
Кінцеві приголосні сортуються так:
(none) ㄱ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㅆ
Як і на південь, склади сортуються спочатку за приголосними, по-друге за голосними, і, нарешті, за (необов'язково) кінцевими приголосними.
Якщо подано речення вище, вихід повинен бути:
건고고기나다리만별술술스조치키특필하한끼않야요유은은입의
Правила
Якщо вхід містить символ, який не знаходиться в межах U + AC00 - U + D7A3, він потрапляє в ситуацію, що не хвилює .
Оскільки це код-гольф, виграє найкоротший код у байтах.
가까나다따라마바빠사싸아자짜차카타파
(усі початкові приголосні), 가개갸걔거게겨계고과괘괴교구궈궤귀규그긔기
(усі голосні), 가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛
(усі зворотні приголосні).