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