उत्तर कोरियाई शब्दकोश आदेश


9

लक्ष्य

हंगुल सिलेबल्स की एक स्ट्रिंग को देखते हुए, उत्तर कोरियाई शब्दकोश क्रम में वर्णों को क्रमबद्ध करें।

हंगुल सिलेबल्स का परिचय

हंगुल (by) सेजोंग महान द्वारा आविष्कृत कोरियाई लेखन प्रणाली है। हंगुल सिलेबल्स को यूनिकोड बिंदु U + AC00 - U + D7A3 में आवंटित किया गया है। एक हंगुल शब्दांश में एक प्रारंभिक व्यंजन, एक स्वर और एक वैकल्पिक अंतिम व्यंजन होते हैं।

प्रारंभिक व्यंजन हैं:

ㄱ ㄲ ㄴ ㄷ ㄸ ㄹ ㅁ ㅂ ㅃ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ

स्वर हैं:

ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅢ ㅣ

अंतिम व्यंजन हैं:

(none) ㄱ ㄲ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅆ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ

उदाहरण के लिए, प्रारंभिक व्यंजन , स्वर और अंतिम व्यंजन है

दक्षिण कोरियाई शब्दकोश आदेश

उपरोक्त व्यंजन और स्वर दक्षिण कोरियाई शब्दकोश क्रम में क्रमबद्ध हैं। सिलेबल्स को पहले प्रारंभिक व्यंजन, दूसरे स्वर से और अंत में (वैकल्पिक) अंतिम व्यंजन द्वारा क्रमबद्ध किया जाता है।

हंगुल सिलेबल्स के लिए यूनिकोड ब्लॉक में प्रत्येक व्यंजन / स्वर संयोजन शामिल हैं, और यह पूरी तरह से दक्षिण कोरियाई शब्दकोश क्रम में सॉर्ट किया गया है।

यूनिकोड ब्लॉक को यहाँ देखा जा सकता है, और पहले 256 वर्णों को चित्रांकन के उद्देश्य से दिखाया गया है:

가각 갂 갃간 갅갆 갇갈 갉갊 갋갌 갍갎 갏감 갑값 갓갔 강갖 갗갘 같갚 갛개 객갞 갟갠 갡갢 갣갤 갥갦 갧갨 갩갪 갫갬 갭갮 갯갰 갱갲 갳갴 갵갶 갷갸 갹갺 갻갼 갽갾 갿걀 걁걂 걃걄 걅걆 걇걈 걉걊 걋걌 걍걎 걏걐 걑걒 걓걔 걕걖 걗걘 걙걚 걛걜 걝걞 걟걠 걡걢 걣걤 걥걦 걧걨 걩걪 걫걬 걭걮 걯거 걱걲 걳건 걵걶 걷걸 걹걺 걻걼 걽걾 걿검 겁겂 것 겄겅 겆겇 겈겉 겊겋 게겍 겎겏 겐겑 겒겓 겔겕 겖겗 겘겙 겚겛 겜겝 겞겟 겠겡 겢겣 겤겥 겦겧 겨격 겪겫 견겭 겮겯 결겱 겲겳 겴겵 겶겷 겸겹 겺겻 겼경 겾겿 곀곁 곂곃 계곅 곆곇 곈곉 곊곋 곌곍 곎곏 곐곑 곒곓 곔곕 곖곗 곘곙 곚곛 곜곝 곞곟 고곡 곢곣 곤곥 곦곧 골곩 곪곫 곬곭 곮곯 곰곱 곲곳 곴공 곶곷 곸곹 곺곻 과 곽 곾곿

उदाहरण के लिए, निम्न वाक्य (रिक्त स्थान और विराम चिह्न के बिना):

키스의고유조건은입술끼리만나야하고특별한기술은필요치않다

क्रमबद्ध किया गया है:

건고고기끼나다리만별술술스않야요유은은의입조치키특필하한

C ++ में, यदि स्ट्रिंग है std::wstring, तो ऊपर छँटाई सादा है std::sort

उत्तर कोरियाई शब्दकोश आदेश

उत्तर कोरियाई शब्दकोश में विभिन्न व्यंजन / स्वर क्रम हैं।

प्रारंभिक व्यंजन क्रमबद्ध हैं:

ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㄸ ㅃ ㅆ ㅉ ㅇ

स्वरों को क्रमबद्ध किया जाता है:

ㅏ ㅑ ㅓ ㅕ ㅗ ㅛ ㅜ ㅠ ㅡ ㅣ ㅐ ㅒ ㅔ ㅖ ㅚ ㅟ ㅢ ㅘ ㅝ ㅙ ㅞ

अंतिम व्यंजन की तरह हल किया जाता है:

(none) ㄱ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㅆ

दक्षिण की तरह, सिलेबल्स को पहले प्रारंभिक व्यंजन द्वारा, दूसरे स्वर द्वारा, और अंत में (वैकल्पिक) अंतिम व्यंजन द्वारा क्रमबद्ध किया जाता है।

यदि उपरोक्त वाक्य दिया गया है, तो आउटपुट होना चाहिए:

건고고기나다리만별술술스조치키특필하한끼않야요유은은입의

नियम

  1. यदि इनपुट में U + AC00 - U + D7A3 के अंदर कोई वर्ण नहीं है, तो यह स्थिति में नहीं आता है।

  2. जैसा कि यह एक कोड-गोल्फ है, बाइट्स में सबसे छोटा कोड जीतता है।



यदि यह समझ में आता है, तो मैं एक परीक्षण मामले को जोड़ने का सुझाव दूंगा जहां अंतिम व्यंजन विशेष रूप से (समान प्रारंभिक व्यंजन और समान स्वर के साथ ㅆ या ㄲ का उपयोग करके) वर्णों को अलग-अलग क्रमबद्ध किया गया हो।
अरनुलद

(अधिक आम तौर पर बोलना, कुछ और परीक्षण मामलों को जोड़ना बहुत अच्छा होगा।)
अरनौल्ड

सुझाए गए परीक्षण मामले: 가까나다따라마바빠사싸아자짜차카타파(सभी प्रारंभिक व्यंजन), 가개갸걔거게겨계고과괘괴교구궈궤귀규그긔기(सभी स्वर), 가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛(सभी अनुगामी व्यंजन)।
ग्रैमी

1
खैर, उसके लिए इतना ... 86 विभिन्न कोरियाई एसक्यूएल टकराव; वे सभी "दक्षिण कोरियाई" तरीके से छाँटते हैं। अच्छा (कठिन) प्रश्न।
ब्रैडक

जवाबों:


1

05AB1E , 47 45 38 बाइट्स

Σ•¡®šúIтÝ„Š’#„λ†x!·“•4B33¡€.ā`ââyÇ68+è

इसे ऑनलाइन आज़माएं!

Σ                        # sort characters of the input by:
 •...•                   #  compressed integer 13096252834522000035292405913882127943177557
      4B                 #  converted to base 4: 211211121231211111033010101010231002310010331121111111111111111121111111
        33¡              #  split on 33: [2112111212312111110, 010101010231002310010, 1121111111111111111121111111]
           €.ā           #  enumerate each (pairs each digit with its index)
              `ââ        #  reduce by cartesian product (yields a list with 11172 elements)
                 yÇ      #  codepoint of the current character
                   68+   #  + 68
                      è  #  index into the large list (with wraparound)

7

जावास्क्रिप्ट (ईएस 6),  150 148  137 बाइट्स

@Grimy की बदौलत 10 बाइट्स बचाए

I / O: वर्णों की सरणियाँ।

a=>a.map(c=>"ANBCODEFPGQSHRIJKLM"[(n=c.charCodeAt()-44032)/588|0]+"AKBLCMDNERTOFGSUPHIQJ"[n/28%21|0]+~(n%28%18==2)+c).sort().map(s=>s[4])

इसे ऑनलाइन आज़माएं!

स्प्लिट हंगुल सिलेबल्स

कोड बिंदु 0xAC00 + के हंगुल चरित्र को देखते हुए nप्रारंभिक व्यंजन मैं, स्वर वी और अंतिम व्यंजन एफ द्वारा दिए गए हैं:

मैं=n588, वी=n28आधुनिक21, एफ=nआधुनिक28

टिप्पणी की गई

a => a.map(c =>                  // for each character c in the input:
  "ANBCODEFPGQSHRIJKLM"[         //   start with a letter from 'A' to 'S'
    (n = c.charCodeAt() - 44032) //   for the initial consonant
    / 588 | 0                    //
  ] +                            //
  "AKBLCMDNERTOFGSUPHIQJ"[       //   append a letter from 'A' to 'U'
    n / 28 % 21 | 0              //   for the vowel
  ] +                            //
  ~(                             //   append "-2" for ㄲ or ㅆ (the only North
    n % 28 % 18 == 2             //   Korean final consonants that are sorted
  ) +                            //   differently) or "-1" otherwise
  c                              //   append the original character
)                                // end of map()
.sort()                          // sort in lexicographical order
.map(s => s[4])                  // isolate the original characters

1

चारकोल , 80 बाइट्स

F”&→∧⁶⍘⎚%γD¦ρJG”F”E⎇↓Nη⊙��⭆Ws@}4”F”E↖hY9 t⟧⊙γIO↶5ε∧¬⁶⦃”Φθ⁼℅μΣ⟦⁴⁴⁰³²×⌕βι⁵⁸⁸⍘⁺κλ²⁸

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। स्पष्टीकरण: उत्तर कोरियाई शब्दकोश आदेश में सभी 11172 हंगुल शब्दांश उत्पन्न करके और यह देखने के लिए जाँच करता है कि कौन से इनपुट में मौजूद हैं (इसलिए अन्य सभी वर्ण हटा दिए जाते हैं; कुछ धीमा भी: TIO पर 18 सेकंड लगते हैं)। स्पष्टीकरण:

F”&→∧⁶⍘⎚%γD¦ρJG”

संकुचित स्ट्रिंग पर लूप acdfghjmopqrsbeiknl। यह उत्तर कोरियाई शब्दकोश क्रम में दक्षिण कोरियाई प्रारंभिक व्यंजन (पश्चिमी लोअरकेस वर्णमाला का उपयोग करके क्रमांकित) की सूची का प्रतिनिधित्व करता है।

F”E⎇↓Nη⊙��⭆Ws@}4”

संकुचित स्ट्रिंग पर लूप 02468cdhik1357bgj9eaf। यह उत्तर कोरियाई शब्दकोश क्रम में दक्षिण कोरियाई स्वरों (एएससीआईआई अंकों और लोअरकेस वर्णमाला का उपयोग करके क्रमांकित) की सूची का प्रतिनिधित्व करता है।

F”E↖hY9 t⟧⊙γIO↶5ε∧¬⁶⦃”

संकुचित स्ट्रिंग पर लूप 013456789abcdefghijlmnopqr2k। यह उत्तर कोरियाई शब्दकोश क्रम में दक्षिण कोरियाई अंतिम व्यंजन (स्वर के समान संख्या का उपयोग करके) की सूची का प्रतिनिधित्व करता है।

Φθ⁼℅μΣ⟦⁴⁴⁰³²×⌕βι⁵⁸⁸⍘⁺κλ²⁸

स्वर और अंतिम व्यंजन को मिलाएं और आधार संख्या 28 के रूप में डिकोड करें, फिर प्रारंभिक स्वर और 5x00 बार 588 बार जोड़ दें। इनपुट से सभी वर्णों को प्रिंट करें जो उनके अध्यादेश के रूप में हैं।


क्या प्रतिस्थापन वर्ण मान्य सिंटैक्स हैं?
दानियू एनडोस

@DannyuNDos यह \xFFचारकोल के कोड पृष्ठ में बाइट मान का प्रतिनिधित्व करता है ।
नील
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.