투표지를 인쇄하십시오!


16

모두 알다시피 오늘은 선거일입니다!

오늘 당신의 임무는 입력이 주어지면 투표 용지를 인쇄하는 것입니다.

입력이 Hillary Clinton인 경우 다음을 인쇄하십시오.

Hillary Clinton   ===-----===>
Donald Trump      ===     ===>
____________      ===     ===>

그러나 입력이 인 경우 다음을 Donald Trump인쇄하십시오.

Hillary Clinton   ===     ===>
Donald Trump      ===-----===>
____________      ===     ===>

다른 것이 있으면 세 번째 줄에 작성하십시오.

Hillary Clinton   ===     ===>
Donald Trump      ===     ===>
Oliver Ni         ===-----===>

(기술적으로는 아직 18 세가 아닙니다 ...)

이것은 이므로 바이트 수가 가장 적은 코드가 이깁니다.


8
"위의 옵션 중 어느 것도"아닙니까? :)
Kritixi Lithos

@ KritixiLithos Hm, nah ...
Oliver Ni

8
"다른 것"의 이름에 대한 최대 길이는? (귀하의 예시에서 첫 번째 등호 앞에 18 문자가 있습니다)
링크 Ng

1
대소 문자를 구분합니까? 테스트 사례로 판단하면 현재 민감하다고 가정합니다.
케빈 크루이 ssen

@KritixiLithos 그러나 그것은 시스템을 리깅 할 것입니다!
OldBunny2800 2016

답변:


6

젤리, 55 53 바이트

³ẇị⁾- x5⁾ =,”=x3¤j;”>ṭ
ṭ“Gụ©l⁴“%eŻƤ(»”_x12¤ṭQḣ3z⁶ZÇ€Y

온라인으로 사용해보십시오!

설명

³ẇị⁾- x5⁾ =,”=x3¤j;”>ṭ   Helper link. Argument: row
³ẇ                       Check if the user's vote is in this row
  ị⁾-                    Take "-" if it was, " " otherwise
      x5                 Take five of that character
        ⁾ =,”=           Take the array [" =", "="]
              x3         Turn it into ["   ===", "==="]
                ¤        Combine the two previous steps into a nilad
                 j       Join the list by the five character string
                  ;”>    Add ">"
                     ṭ   Prepend the original row

ṭ“Gụ©l⁴“%eŻƤ(»”_x12¤ṭQḣ3z⁶ZÇ€Y   Main link. Argument: vote
 “Gụ©l⁴“%eŻƤ(»                   Take the array ["Hillary Clinton", "Donald Trump"]
ṭ                                Add the user's vote to the list
              ”_                 Take "_"
                x12              Take twelve times that
                   ¤             Combine the two previous steps into a nilad
                    ṭ            Add that string to the list
                     Q           Remove duplicates
                      ḣ3         Take the three first items
                        z⁶       Transpose, padding with spaces
                          Z      Transpose back
                           ǀ    Apply the helper to each row
                             Y   Join with newlines

4

파이썬 2, 127 바이트

X=['Hillary Clinton','Donald Trump']
i=input()
X+=[[i],['_'*12]][i in X]
for x in X:print x.ljust(18)+'==='+' -'[i==x]*5+'===>'


2

자바 7, 390 339 335 바이트

String c(String s){String h="Hillary Clinton",d="Donald Trump",r=h+"   ===Q===>\n"+d+"      ===X===>\nZ===J===>";boolean H=h.equals(s),D=d.equals(s);for(int i=s.length();i++<18;s+=" ");return r.replace(H?"Q":D?"X":"J","-----").replace(H|D?"Z":"~","____________      ").replaceAll(H?"X|J":D?"Q|J":"Q|X","     ").replace(H|D?"~":"Z",s);}

언 골프 및 테스트 코드 :

여기에서 시도하십시오.

class M{
  static String c(String s){
    String h = "Hillary Clinton",
           d = "Donald Trump",
           r = h+"   ===Q===>\n"+d+"      ===X===>\nZ===J===>";
    boolean H = h.equals(s),
            D = d.equals(s);
    for(int i = s.length(); i++ < 18; s += " ");
    return r.replace(H?"Q":D?"X":"J", "-----")
            .replace(H|D?"Z":"~", "____________      ")
            .replaceAll(H?"X|J":D?"Q|J":"Q|X", "     ")
            .replace(H|D?"~":"Z", s);
  }

  public static void main(String[] a){
    System.out.println(c("Hillary Clinton"));
    System.out.println();
    System.out.println(c("Donald Trump"));
    System.out.println();
    System.out.println(c("Anyone else?.."));
    System.out.println();
    System.out.println(c("S"));
    System.out.println();
    System.out.println(c("Anyone who is willing to take the job"));
  }
}

산출:

Hillary Clinton   ===-----===>
Donald Trump      ===     ===>
____________      ===     ===>

Hillary Clinton   ===     ===>
Donald Trump      ===-----===>
____________      ===     ===>

Hillary Clinton   ===     ===>
Donald Trump      ===     ===>
Anyone else?..    ===-----===>

Hillary Clinton   ===     ===>
Donald Trump      ===     ===>
S                 ===-----===>

Hillary Clinton   ===     ===>
Donald Trump      ===     ===>
Anyone who is willing to take the job===-----===>

2

자바 스크립트 (ES6), 149 바이트

s=>['Hillary Clinton','Donald Trump',0].map(S=>((S?S:s||'____________')+p+p+p+p+p).slice(0,18)+`===${!S^S==s?(s=0,'-----'):p}===>`,p='     ').join`
`

데모


1

V , 104 바이트

OHillary Clinton³ ³=µ ³=>YpRDonald Trump   p15r_ñ/^¨á« ᫾©.*î¨.*î©*\1
22|5r-Gdññ3GjéRDk@"Í_/ 
22|5r-

온라인으로 사용해보십시오!

이 답변은 너무 해 키고 너무 길다. 텍스트 편집기에서 골프 언어를 디자인 할 때 얻을 수있는 것 같습니다.¯\_(ツ)_/¯


잠깐만 O요? 이 같은 기능을 것 같습니다i
코너 오브라이언

@conor 맞습니다. 둘 다 삽입 모드로 들어갑니다. 유일한 차이는 어디에 으로하면 커서가 시작 버퍼. 또한 iIaAoOsSR모두 어떤 식 으로든 삽입 모드로 들어가는 것도 있습니다.
DJMcMayhem

0

배치, 210 바이트

@set s=%1
@call:l %1 "Hillary Clinton"
@call:l %1 "Donald Trump"
@call:l %1 %s%
@exit/b
:l
@set v=     
@if %1==%2 set v=-----&set s=____________
@set t=%~2                  
@echo %t:~0,18%===%v%===^>

참고 : 줄 @set v=에는 후행 공백이 5 개 있으며 줄 @set t=%~2에는 18 개가 있습니다. 인용 된 명령 줄 매개 변수로 입력을받습니다.


0

C #, 266 바이트

골프 :

string B(string s){var h="Hilary Clinton".PadRight(17);var d="Donald Trump".PadRight(17);var r="===     ===>\n";var c=r.Replace(" ", "-");var b="____________".PadRight(17);return s==h.Trim()?s.PadRight(17)+c+d+r+b+r:s==d.Trim()?h+r+d+c+b+r:h+r+d+r+s.PadRight(17)+c;}

언 골프 드 :

public string B(string s)
{
  var h = "Hilary Clinton".PadRight(17);
  var d = "Donald Trump".PadRight(17);
  var r = "===     ===>\n";
  var c = r.Replace(" ", "-");
  var b = "____________".PadRight(17);
  return s == h.Trim() ? s.PadRight(17) + c + d + r + b + r :
    s == d.Trim() ? h + r + d + c + b + r :
      h + r + d + r + s.PadRight(17) + c;
}

모든 PadRights에 대한 Func를 만들려고 시도했습니다 ... 정확히 동일한 바이트 수 ...

테스트 :

var printABallot = new PrintABallot();
Console.WriteLine(printABallot.B("Hilary Clinton"));

Hilary Clinton   ===-----===>
Donald Trump     ===     ===>
____________     ===     ===>


Console.WriteLine(printABallot.B("Donald Trump"));

Hilary Clinton   ===     ===>
Donald Trump     ===-----===>
____________     ===     ===>


Console.WriteLine(printABallot.B("Kanye West"));

Hilary Clinton   ===     ===>
Donald Trump     ===     ===>
Kanye West       ===-----===>


0

Pyth, 76 바이트

V{+_tW!}zJ[*\_12"Donald Trump""Hillary Clinton")Jzs[.[Nd18K*\=3*?qzN\-d5K\>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.