Ti piace il Taekwondo?


9

Choi Hong Hi è morto il 15 giugno 2002 all'età d'onore di 83 anni. Ha fondato il Taekwondo .

15 anni dopo la sua morte, vorrei essere un maestro del Taekwondo. Questo è il mio momento di brillare!

Compito

Data una stringa, dovresti produrre una versione di Taekwondo .

Regole

  • Riceverai una stringa / frase non vuota da qualsiasi input valido
  • È necessario sostituire ciascun titolo (senza distinzione tra maiuscole e minuscole) con l' equivalente di romanizzazione rivisto .
  • Devi aggiungere , *side kick*alla fine della frase perché mi piace fare calci laterali.
  • È necessario generare questa frase modificata come stringa.
  • Questo è il che dovresti mirare a minimizzare il conteggio dei byte della tua risposta

Esempi

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

Elenco dei titoli

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
senza distinzione tra maiuscole e minuscole? ed è uno spazio necessario prima*side kick*
LiefdeWen

10
@LiefdeWen Lo spazio è ovviamente necessario. Come puoi fare uno side kickspazio senza spazio tra te e il tuo avversario?
Weedoze,

1
Come ragazzo coreano, approvo questa sfida. Ma devo dire che Geup(급) non significa veramente "studente". Haksaeng(학생) sarebbe meglio. Inoltre, Sabeom nimuseresti (사범님) invece di Gyosa nim(교사 님) quando si tratta di istruttore di arti marziali, indipendentemente dalla padronanza (la parola Gyobeom nim(교범 님) esiste, ma viene usata raramente).
JungHwan Min,

2
side kickè diverso daside-kick
sergiol il

1
@sergiol Domanda aggiornata
Weedoze,

Risposte:


2

Retina , 154 byte

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

Provalo online!


3

PHP , 241 byte

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

Provalo online!


1
Come conto, sarebbe più breve con str_ireplace().
arte

Non è chiaro cosa "È necessario emettere questa frase modificata come una stringa." in realtà significa, ma dato il calcio laterale deve sempre essere aggiunto, direi che la frase cambierà sempre, quindi qualcosa dovrebbe sempre essere emesso. Ad esempio in caso di input come "Me coder, no Taekwondo".
arte

@manatwork Si dice input valido. Con un input valido presumo un input con un titolo. Il tuo conto str_ireplaceera giusto
Jörg Hülsermann,

1
Sembra che ci sia abbastanza “NIM” per un valore di una variabile: [$a=Gwanjang.$n=" nim",$a,Sabeom.$n,Gyosa.$n,….
arte

@manatwork Sì, salva due byte. Ho provato una versione con aggiunta strtrma non salva nulla
Jörg Hülsermann il

2

C #, 262 byte

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

Versione completa / formattata:

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();
    }
}

Dovremmo chiederci se *SIDE KICK*può essere in questa forma, negli esempi era in minuscolo
Mr. Xcoder

@ Mr.Xcoder Il commento sull'OP afferma che non fa distinzione tra maiuscole e minuscole, in entrambi i casi non è un cambiamento nel conteggio dei byte. Anche un calcio in maiuscolo è più potente, quindi dovrebbe essere permesso ...
TheLethalCoder

1
Sì,
sto

1

Retina , 163 byte

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*

Provalo online!


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

dimostrazione


@manatwork: risolto.
sergiol,

0

Python 3 , 281 byte

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

Provalo online!


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

Provalo online!

Questo non è compatto come potrebbe essere poiché JavaScript è così dettagliato, ma è un'ottima domanda. Ho riconosciuto la maggior parte di questi termini poiché sono la 2a cintura nera Dan nel Taekwondo.

Explanaion

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.