উত্তর কোরিয়ার অভিধান ক্রম


9

উদ্দেশ্য

হ্যাঙ্গুল সিলেবলের একটি স্ট্রিং দেওয়া হয়েছে, উত্তর কোরিয়ার অভিধান ক্রমে অক্ষরগুলি সাজান।

হাঙ্গুলের সিলেবলের পরিচিতি

হাঙ্গুল (한글) কোরিয়ান রাইটিং সিস্টেম যা সেজং দ্য গ্রেট উদ্ভাবিত। হ্যাঙ্গুল সিলেবলগুলি ইউনিকোড পয়েন্ট U + AC00 - U + D7A3 এ বরাদ্দ করা হয়। একটি হাঙ্গুলের সিলেলেলে প্রাথমিক ব্যঞ্জনা, একটি স্বর এবং anচ্ছিক চূড়ান্ত ব্যঞ্জনা থাকে।

প্রাথমিক ব্যঞ্জনবর্ণ হ'ল:

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

স্বরগুলি হ'ল:

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

চূড়ান্ত ব্যঞ্জনবর্ণ হ'ল:

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

উদাহরণস্বরূপ, প্রাথমিক ব্যঞ্জনবর্ণ , স্বরবর্ণ এবং চূড়ান্ত ব্যঞ্জনবর্ণ রয়েছে

দক্ষিণ কোরিয়ান অভিধান ক্রম

উপরের ব্যঞ্জনবর্ণ এবং স্বরগুলি দক্ষিণ কোরিয়ান অভিধান ক্রম অনুসারে বাছাই করা হয়েছে। সিলেবলগুলি প্রথমে প্রাথমিক ব্যঞ্জনবর্ণ অনুসারে বাছাই করা হয়, দ্বিতীয়ত স্বর দ্বারা এবং শেষ পর্যন্ত (alচ্ছিক) চূড়ান্ত ব্যঞ্জনা দ্বারা।

হ্যাঙ্গুল সিলেবলের জন্য ইউনিকোড ব্লকে প্রতিটি ব্যঞ্জনবর্ণ / স্বরযুক্ত সমন্বয় রয়েছে এবং এটি সম্পূর্ণভাবে দক্ষিণ কোরিয়ার অভিধান ক্রম অনুসারে সাজানো হয়েছে।

ইউনিকোড ব্লকটি এখানে দেখা যাবে এবং প্রথম 256 টি অক্ষর চিত্রিত উদ্দেশ্যে দেখানো হয়েছে:

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

উদাহরণস্বরূপ, নিম্নলিখিত বাক্য (ফাঁকা স্থান এবং বিরামচিহ্ন ছাড়াই):

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

বাছাই করা হয়:

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

সি ++ এ, স্ট্রিংটি যদি থাকে তবে std::wstringউপরের বাছাইটি সরল std::sort

উত্তর কোরিয়ার অভিধান ক্রম

উত্তর কোরিয়ার অভিধানে আলাদা ব্যঞ্জনা / স্বর ক্রম রয়েছে।

প্রাথমিক ব্যঞ্জনবর্ণগুলি এখানে সাজানো হয়:

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

স্বরগুলি এর মতো বাছাই করা হয়:

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

চূড়ান্ত ব্যঞ্জনবর্ণগুলি এখানে সাজানো হয়:

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

দক্ষিণের মতো, সিলেবলগুলি প্রথমে প্রাথমিক ব্যঞ্জনা অনুসারে বাছাই করা হয়, দ্বিতীয়ত স্বর দ্বারা এবং শেষ পর্যন্ত (alচ্ছিক) চূড়ান্ত ব্যঞ্জনা দ্বারা।

উপরের বাক্যটি যদি দেওয়া হয় তবে আউটপুট অবশ্যই হবে:

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

বিধি

  1. যদি ইনপুটটিতে এমন কোনও অক্ষর থাকে যা U + AC00 - U + D7A3 এর মধ্যে না থাকে তবে এটি পড়ে না এমন পরিস্থিতিতে পড়ে ।

  2. এটি একটি কোড-গল্ফ হিসাবে, বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।



যদি এটি বোঝা যায়, তবে আমি একটি পরীক্ষার কেস যুক্ত করার পরামর্শ দেব যেখানে অক্ষরগুলি পৃথকভাবে চূড়ান্ত ব্যঞ্জনবর্ণের কারণে বাছাই করা হয় (একই প্রাথমিক ব্যঞ্জনা এবং একই স্বর দিয়ে ㄲ বা using ব্যবহার করে)।
আর্নৌল্ড

(আরও সাধারণভাবে বলতে গেলে আরও কয়েকটি পরীক্ষার কেস যুক্ত করা দুর্দান্ত হবে))
আর্নল্ড

প্রস্তাবিত পরীক্ষার কেস: 가까나다따라마바빠사싸아자짜차카타파(সমস্ত প্রাথমিক ব্যঞ্জনবর্ণ), 가개갸걔거게겨계고과괘괴교구궈궤귀규그긔기(সমস্ত স্বর), 가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛(সমস্ত পিছনে ব্যঞ্জনবর্ণ)।
গ্রিমি

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

জাভাস্ক্রিপ্ট (ES6),  150 148  137 বাইট

@ গ্রিমিকে 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, প্রাথমিক ব্যঞ্জনবর্ণ I, স্বরবর্ণ V এবং চূড়ান্ত ব্যঞ্জনবর্ণ F দ্বারা দেওয়া হয়:

I=n588, V=n28mod21, F=nmod28

মন্তব্য

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 হ্যাঙ্গুল সিলেবলগুলি উত্পন্ন করে এবং ইনপুটটিতে কোনটি উপস্থিত রয়েছে তা পরীক্ষা করে কাজ করে (সুতরাং অন্য সমস্ত অক্ষর মুছে ফেলা হয়; কিছুটা ধীর গতিতে: টিআইওতে 18 সেকেন্ড সময় লাগে)। ব্যাখ্যা:

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

সংকুচিত স্ট্রিং উপর লুপ acdfghjmopqrsbeiknl। এটি উত্তর কোরিয়ার অভিধান ক্রমে দক্ষিণ কোরিয়ার প্রাথমিক ব্যঞ্জনবর্ণের (পশ্চিমা ছোট ছোট বর্ণমালা ব্যবহার করে সংখ্যাযুক্ত) তালিকা উপস্থাপন করে।

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

সংকুচিত স্ট্রিং উপর লুপ 02468cdhik1357bgj9eaf। এটি উত্তর কোরিয়ার অভিধান ক্রমে দক্ষিণ কোরিয়ান স্বরগুলির (ASCII সংখ্যা এবং ছোট হাতের বর্ণমালা ব্যবহার করে সংখ্যাযুক্ত) তালিকা উপস্থাপন করে।

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

সংকুচিত স্ট্রিং উপর লুপ 013456789abcdefghijlmnopqr2k। এটি উত্তর কোরিয়ার অভিধান ক্রমে দক্ষিণ কোরিয়ার চূড়ান্ত ব্যঞ্জনবর্ণের (স্বর হিসাবে একই সংখ্যা ব্যবহার করে) তালিকার প্রতিনিধিত্ব করে।

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

স্বর এবং চূড়ান্ত ব্যঞ্জনা জড়ান এবং বেস 28 সংখ্যা হিসাবে ডিকোড করুন, তারপরে 588 বার প্রাথমিক স্বর এবং 0xAC00 যোগ করুন। ইনপুট থেকে সমস্ত অক্ষর মুদ্রণ করুন যা তাদের অরডিনাল হিসাবে রয়েছে।


প্রতিস্থাপনের অক্ষরগুলি বৈধ সিনট্যাক্স?
ড্যানইউ এনডোস

@ ড্যানইউনডোস এটি চারকোলের \xFFকোড পৃষ্ঠাতে বাইট মান উপস্থাপন করে ।
নীল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.