Magst du Taekwondo?

9

Choi Hong Hi starb am 15. Juni 2002 im ehrenwerten Alter von 83 Jahren. Er gründete Taekwondo .

15 Jahre nach seinem Tod möchte ich ein Taekwondo-Meister sein. Dies ist meine Zeit zu glänzen!

Aufgabe

Wenn Sie eine Zeichenfolge angeben, sollten Sie eine Taekwondo- Version ausgeben .

Regeln

  • Sie erhalten durch jede gültige Eingabe eine nicht leere Zeichenfolge / einen nicht leeren Satz
  • Sie müssen jeden Titel (ohne Berücksichtigung der Groß- und Kleinschreibung) durch das überarbeitete Romanisierungsäquivalent ersetzen .
  • Sie müssen , *side kick*am Ende des Satzes hinzufügen, weil ich gerne Side Kicks mache.
  • Sie müssen diesen geänderten Satz als Zeichenfolge ausgeben.
  • Dies ist Sie sollten darauf abzielen, die Anzahl der Bytes Ihrer Antwort zu minimieren

Beispiele

"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*"

Liste der Titel

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
Weedoze
quelle
1
Groß- und Kleinschreibung nicht berücksichtigen? und ist ein Platz benötigt vor*side kick*
LiefdeWen
10
@LiefdeWen Der Platz wird offensichtlich benötigt. Wie kannst du ein side kickLeerzeichen zwischen dir und deinem Gegner machen?
Weedoze
1
Als Koreaner bin ich mit dieser Herausforderung einverstanden. Aber ich muss sagen, dass Geup(급) nicht wirklich "Student" bedeutet. Haksaeng(학생) wäre besser. Außerdem würden Sie Sabeom nim(사범님) anstelle von Gyosa nim(교사 님) verwenden, wenn es um Kampfkunstlehrer geht, unabhängig von der Meisterschaft (Das Wort Gyobeom nim(교범 님) existiert, wird aber selten verwendet).
JungHwan Min
2
side kickist anders alsside-kick
Sergiol
1
@sergiol Frage aktualisiert
Weedoze

Antworten:

2

Netzhaut , 154 Bytes

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

Probieren Sie es online aus!

Okx
quelle
3

PHP , 241 Bytes

<?=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*");

Probieren Sie es online aus!

Jörg Hülsermann
quelle
1
Wie ich zähle, wäre es mit kürzer str_ireplace().
Manatwork
Unklar, was "Sie müssen diesen geänderten Satz als Zeichenfolge ausgeben." bedeutet eigentlich, aber da der Side Kick immer hinzugefügt werden muss, würde ich sagen, dass sich der Satz immer ändern wird, also sollte immer etwas ausgegeben werden. Zum Beispiel bei Eingaben wie „Me coder, no Taekwondo“.
Manatwork
@manatwork Es heißt gültige Eingabe. Unter gültiger Eingabe gehe ich von einer Eingabe mit einem Titel aus. Ihre Zählung mit str_ireplacewar richtig
Jörg Hülsermann
1
Es scheint genug "nim" zu geben, um eine Variable wert zu sein : [$a=Gwanjang.$n=" nim",$a,Sabeom.$n,Gyosa.$n,….
Manatwork
@manatwork Ja, es werden zwei Bytes gespeichert. Ich habe versucht, eine Version mit zusätzlichen, strtraber es spart nichts
Jörg Hülsermann
2

C #, 262 Bytes

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*";}

Vollversion / Formatierte Version:

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();
    }
}
TheLethalCoder
quelle
Wir sollten fragen, ob *SIDE KICK*es in dieser Form sein kann, in den Beispielen wurde es in Kleinbuchstaben geschrieben
Mr. Xcoder
@ Mr.Xcoder Der Kommentar zum OP besagt, dass die Groß- und Kleinschreibung nicht berücksichtigt wird. In beiden Fällen handelt es sich nicht um eine Änderung der Byteanzahl. Auch ein Tritt in Großbuchstaben ist stärker, so dass es erlaubt sein sollte ...
TheLethalCoder
1
Ja, nur diese Bemerkung machen ... Diese Antwort ist sowieso tödlich :))
Mr. Xcoder
1

Netzhaut , 163 Bytes

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*

Probieren Sie es online aus!

ovs
quelle
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*"

Demo

Sergiol
quelle
@manatwork: behoben.
Sergiol
0

Python 3 , 281 Bytes

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*")

Probieren Sie es online aus!

Officialaimm
quelle
0

JavaScript (ES6), 251 Byte

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*'

Probieren Sie es online aus!

Dies ist nicht so kompakt wie es sein könnte, da JavaScript so ausführlich ist, aber es ist eine gute Frage. Ich habe die meisten dieser Begriffe erkannt, da ich ein 2. Dan Black Belt in Taekwondo bin.

Erklärung

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
andrewarchi
quelle
0

JavaScript (ES6), 233 Byte

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 Byte

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*')

darrylyeo
quelle