Taekwondo hoşunuza gitti mi?


9

Choi Hong Hi 15 Haziran 2002'de onurlu 83 yaşında öldü . Taekwondo'yu kurdu .

Ölümünden 15 yıl sonra, Tekvando ustası olmak istiyorum. Bu benim parlama zamanı!

Görev

Bir dize verildiğinde, bir Taekwondo sürümü çıkarmalısınız .

kurallar

  • Geçerli herhangi bir girişle boş olmayan bir dize / cümle alacaksınız
  • Her bir başlığı (büyük / küçük harfe duyarlı değil), revize edilmiş romanizasyon eşdeğeriyle değiştirmeniz gerekir .
  • , *side kick*Cümlenin sonuna eklemelisiniz çünkü yan vuruşlar yapmayı seviyorum.
  • Değiştirilen bu cümleyi bir dize olarak çıkarmalısınız.
  • Bu cevabınızın bayt sayısını en aza indirmeyi hedeflemelisiniz

Örnekler

"I am a Student and I do Taekwondo twice a week" 
  => "I am a Geup and I do Taekwondo twice a week, *side kick*"

"I am a Teacher willing to be a President" 
  => "I am a Gyosa nim willing to be a Gwanjang nim, *side kick*"

Başlık listesi

English             =>  Revised Romanization
============================================
President           =>  Gwanjang nim
Founder             =>  Gwanjang nim
Master instructor   =>  Sabeom nim
Teacher             =>  Gyosa nim
Black Belt          =>  Dan
Student             =>  Geup
Color Belt          =>  Geup
Master level        =>  Godanja

1
büyük / küçük harfe duyarsız? ve daha önce ihtiyaç duyulan bir alandır*side kick*
LiefdeWen

10
@LiefdeWen Alan gerekli. side kickRakibinizle aranızda boşluk bırakmadan nasıl yapabilirsiniz ?
17'de Weedoze

1
Koreli bir adam olarak, bu zorluğu onaylıyorum. Ama şunu söylemeliyim ki Geup(급) gerçekten 'öğrenci' demek değildir. Haksaeng(학생) daha iyi olurdu. Ayrıca, üstatlıktan bağımsız olarak dövüş sanatları eğitmeni söz konusu olduğunda (교사 Sabeom nim님) yerine (사범님) kullanırsınız ( Gyosa nim(교범 님) kelimesi Gyobeom nimvardır, ancak nadiren kullanılır).
JungHwan Min

2
side kickfarklıside-kick
sergiol

1
@sergiol Soru güncellendi
Weedoze

Yanıtlar:


2

Retina , 154 bayt

i(`president|founder
Gwanjang_
master instructor
Sabeom_
teacher
Gyosa_
black belt
Dan
student|color belt
Geup
master level
Godanja
_
 nim
$
, *side kick*

Çevrimiçi deneyin!


3

PHP , 241 bayt

<?=preg_replace(["#\b(President|Founder)\b#i","#\bMaster instructor\b#i","#\bTeacher\b#i","#\bBlack Belt\b#i","#\b(Studen|Color Bel)t\b#i","#\bMaster level\b#i"],[Gwanjang.$n=" nim",Sabeom.$n,Gyosa.$n,Dan,Geup,Godanja],"$argn, *side-kick*");

Çevrimiçi deneyin!


1
Saydığım gibi, daha kısa olurdu str_ireplace().
manatwork

"Bu değiştirilen cümleyi bir dize olarak çıkarmalısınız." aslında, ama yan tekme her zaman eklenmelidir, cümlenin her zaman değişeceğini söyleyebilirim, bu yüzden bir şey her zaman çıktı olmalıdır. Örneğin “Me kodlayıcı, Taekwondo yok” gibi girdiler söz konusu olduğunda.
manatwork

@manatwork Geçerli giriş olduğu söyleniyor. Geçerli girdi altında, başlıklı bir girdi olduğunu varsayıyorum. Your sayımı str_ireplacehaklıydı
Jörg Hülsermann

1
Bir değişkene değer için yeterli “nim” gibi görünüyor: [$a=Gwanjang.$n=" nim",$a,Sabeom.$n,Gyosa.$n,….
manatwork

@manatwork Evet iki bayt kaydeder. Ek bir sürüm denedim strtrama hiçbir şey kazandırmaz
Jörg Hülsermann

2

C #, 262 bayt

s=>{for(int i=0;i<8;)s=s.ToUpper().Replace("PRESIDENT|FOUNDER|MASTER INSTRUCTOR|TEACHER|BLACK BELT|MASTER LEVEL|STUDENT|COLOR BELT".Split('|')[i],(i<2?"GWANJANG":i>3?"GEUP":"SABEOM|GYOSA|DAN|GODANJA".Split('|')[i-2])+(i++<4?" NIM":""));return s+", *SIDE KICK*";}

Tam / Biçimlendirilmiş sürüm:

class Program
{
    static void Main(string[] args)
    {
        System.Func<string, string> f = s =>
        {
            for (int i = 0; i < 8;)
                s = s.ToUpper().Replace("PRESIDENT|FOUNDER|MASTER INSTRUCTOR|TEACHER|BLACK BELT|MASTER LEVEL|STUDENT|COLOR BELT".Split('|')[i],
                                        (i < 2 ? "GWANJANG"
                                               : i > 3 ? "GEUP"
                                                       : "SABEOM|GYOSA|DAN|GODANJA".Split('|')[i-2])
                                        + (i++ < 4 ? " NIM" : ""));

            return s + ", *SIDE KICK*";
        };

        System.Console.WriteLine(f("I am a Student and I do Taekwondo twice a week"));
        System.Console.WriteLine(f("I am a Teacher willing to be a President"));

        System.Console.ReadLine();
    }
}

*SIDE KICK*Bu formda olup olamayacağını sormalıyız , örneklerde küçük harfle
Bay Xcoder

@ Mr.Xcoder OP hakkındaki yorum, büyük / küçük harfe duyarlı olmadığını söylüyor, her iki durumda da bayt sayısında bir değişiklik değil. Ayrıca büyük harfli bir vuruş daha güçlüdür, bu yüzden izin verilmelidir ...
TheLethalCoder

1
Evet, sadece bu sözleri söylüyorum ... Bu cevap zaten ölümcül :))
Bay Xcoder

1

Retina , 163 bayt

i`President|Founder
Gwanjang¶
i`Master instructor
Sabeom¶
i`Teacher
Gyosa¶
i`Black Belt
Dan
i`Student|Color Belt
Geup
i`Master level
Godanja
¶
 nim
$
, *side kick*

Çevrimiçi deneyin!


0

tcl, 212

puts "[string map -nocase {President Gwanjang\ nim Founder Gwanjang\ nim Master\ instructor Sabeom\ nim Teacher Gyosa\ nim Black\ Belt Dan Student Geup Color\ Belt Geup Master\ level Godanja} $argv], *side kick*"

gösteri


@manatwork: sabit.
sergiol

0

Python 3 , 281 bayt

import re
x=input();a="Gwanjang";b=" nim";c="Geup";d="Master";e=" Belt"
for i in range(8):x=re.sub("(?i)"+["President","Founder",d+" instructor","Teacher","Black"+e,"Student","Color"+e,d+" level"][i],[a+b,a+b,"Sabeom"+b,"Gyosa"+b,"Dan",c,c,"Godanja"][i],x)
print(x+", *side kick*")

Çevrimiçi deneyin!


0

JavaScript (ES6), 251 bayt

a=>a.replace(RegExp(b='president|founder|master instructor|teacher|black belt|student|color belt|master level','gi'),c=>((d='Gwanjang nim|')+d+'Sabeom nim|Gyosa nim|Dan|Geup|Geup|Godanja').split`|`[b.split`|`.indexOf(c.toLowerCase())])+', *side kick*'

Çevrimiçi deneyin!

JavaScript çok ayrıntılı olduğu için bu olabildiğince kompakt değil, ama harika bir soru. Bu terimlerin çoğunu Taekwondo'da 2. Dan Black Belt olarak tanıdım.

açıklama şu

a=>
  a.replace(                                    // Replace on input string
    RegExp(                                     // Regex matching English phrases
      b='president|founder|master instructor|teacher|black belt|student|color belt|master level',
      'gi'                                      // Match all, case insensitive
    ),
    c=>
      ((d='Gwanjang nim|')+d+                   // Duplicate string portion
        'Sabeom nim|Gyosa nim|Dan|Geup|Geup|Godanja') // Add remaining phrases
      .split`|`                                 // Split into array by pipe
        [b.split`|`.indexOf(c.toLowerCase())])  // Access Korean phrase by corresponding index of matched English phrase
      +', *side kick*'                          // I like to do side kicks

0

JavaScript (ES6), 233 bayt

s=>(btoa`>·¬×§·mÁ©ãjx4)µ§uêö§©àÒx¦ÔƬµêô{-®ç-¢½i·¨IâTÞiÈ^¯a²¢Æ´)µV@^Ýj}R¶ç^Ýzêu
h¯@^Ýzêu1«-z½%z÷¥ØjjxÚ`.split(0).join` `.split`1`.map(d=>([a,b]=d.split(/2+/),s=s.replace(RegExp(a,'gi'),b))),s+', *side kick*"')


JavaScript (ES6), 243 bayt

s=>(`President${A=':Gwanjang nim|'}Founder${A}Master instructor:Sabeom nim|Teacher:Gyosa nim|Black Belt:Dan|Student:Geup|Color Belt:Geup|Master level:Godanja`.split`|`.map(r=>([a,b]=r.split`:`,s=s.replace(RegExp(a,'gi'),b))),s+', *side kick*')

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.