Steve Ballmer의 흥미로운 사례


46

스티브 발머 (Steve Ballmer)는 Microsoft의 전 CEO이며 최근 기사 에서 "모바일에서 자신이 뭘 잘못했는지 알지 못한다"고 주장했다.

으로 CodeProject의 의 뉴스 레터를 지적, "그 기사의 제목은 많은 점 때문에에 종료 여전히 정확하다고 할 수있다."

입력이 없으면 다음을 출력하십시오.

Steve Ballmer still does not know.
Steve Ballmer still does not know what he did.
Steve Ballmer still does not know what he did wrong.
Steve Ballmer still does not know what he did wrong with mobile.

이것은 표시된대로 정확하게 출력되어야하며 프로그램의 유일한 출력이어야합니다. 하나의 후행 줄 바꿈을 포함 할 수 있습니다.

이것은 이므로 각 언어에서 가장 적은 바이트 승리합니다.


59
제목 / 태그를 보았을 때 결과는 다음과 같을 것이라고 생각했습니다.developers developers ...
Rod

15
tcl, 25while 1 {puts developers}데모
sergiol 2016 년

8
braingolf, 23 - 1"developers "[!@11 1>]: P
Skidsdev

16
그리고 xkcd의 Ballmer Peak
ojdo

5
네, 14yes developers
sergiol

답변:



17

하스켈, 96 바이트

(++".\n")=<<scanl(++)"Steve Ballmer still does not know"[" what he did"," wrong"," with mobile"]

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

scanlfoldl최종 결과 대신 모든 중간 결과 목록을 반환한다는 점을 제외하고 는 비슷합니다 (또는 다른 언어로 불려 감에 따라 줄어 듭니다). 각 중간 결과가 추가 ".\n"되고 모든 결과가 단일 문자열로 연결됩니다.


17

05AB1E , 50 49 45 44 바이트

Kevin의 Java 답변 에서 영감을 얻은 4 바이트 절약

„€Ž†©'–Ñ…€À€½ƒ§“mer„â‚à€–ƒ€“”™¸ïß”[Žì'.«=¨ð«

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

설명

„€Ž†©                                         # push "with mobile"
     '–Ñ                                      # push "wrong"
        …€À€½ƒ§                               # push "what he did"
               “mer„â‚à€–ƒ€“                  # push "mer still does not know"
                            ”™¸ïß”            # push "Steve Ball"
                                  [Ž          # loop until stack is empty
                                    ì         # prepend the top string to the 2nd top string
                                     '.«      # append a dot
                                        =     # print without popping
                                         ¨    # remove the dot
                                          ð«  # append a space

오, 좋았지 만 모든 것을 위해 사전 압축을 사용 Ballmer했습니까?
Skidsdev 2016 년

@Mayube : 예. 원래 문자열을 재구성하여 바이트를 절약하기 위해 부분적으로 (볼)했습니다 :)
Emigna

압축 만 할 수 있다면 훨씬 더 나아 보입니다mer
Skidsdev

@Mayube : 압축을하여 숨길 수는 me있지만 불행히도 바이트를 절약 할 수는 없습니다 : /
Emigna

2
@StigHemmer : 05AB1E 코드 페이지
Emigna

15

망막 , 82 75 바이트

7 바이트를 절약 해 준 Neil에게 감사합니다.

바이트 수는 ISO 8859-1 인코딩을 가정합니다.


Steve Ballmer still does not know what he did wrong with mobile.
 w
.¶$`$&

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

설명


Steve Ballmer still does not know what he did wrong with mobile.

작업 문자열을 전체 헤드 라인으로 초기화하십시오.

 w
.¶$`$&

Neil이 지적한 것처럼으로 시작하는 단어 앞에 세 가지 잘림이 모두 이루어지며으로 시작하는 w다른 단어는 없습니다 w. 따라서 공백 다음에 a w를 붙여 절단 지점을 찾습니다. 이 시점에서 다음을 삽입합니다.

  • , 문장을 자르고 새로운 문장을 시작하는 마침표와 줄 바꿈.
  • $`, 일치하는 문자열 앞에 전체 문자열이 있으므로 다음 문장이 처음부터 다시 시작됩니다.
  • $&, 공백 및 w다시 다음 문장의 일부이기도합니다.

mobile명시 적으로 일치시킬 필요는 없습니다. 단순히 세 번째 일치에서 남은 것이기 때문입니다.


3
<space> w에서만 일치하고로 교체하면 .¶$`$&됩니다.
Neil

@ Neil 아, 정말 깔끔합니다. 감사합니다. :)
Martin Ender 2012 년

9

PHP, 104 95 94 바이트

<?=$a="Steve Ballmer still does not know",$a=".
$a what he did",$a.=" wrong",$a?> with mobile.

1
"무엇"이 누락 되었습니까?
TheLethalCoder

8

/// , 88 바이트

@MartinEnder가 8 바이트를 절약했습니다!

/1/Steve Ballmer still does not know//2/1 what he did//3/2 wrong/1.
2.
3.
3 with mobile.

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


1
: 각 대체에 이전 접두사를 이동하여 더 많은 비트를 저장할 수 있습니다 tio.run/...
마틴 청산

@MartinEnder 특히 영리합니다. 감사!
steenbergh 2016 년

1
아, 그리고 또 다른 5 놓아 4: 모두 tio.run/##DcLRDcMgDAXA/...
마틴 청산

5
@MartinEnder "예, 모바일과 함께 3 위를 갖겠습니다."
steenbergh 2016 년

7

05AB1E , 46 바이트

”™¸ïßme”“r„â‚à€–ƒ€“«…€À€½ƒ§'–Ñ„€Ž†©).pvyðý'.«»

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


이것은 내 카운트에 의해 98 바이트입니다.
Stig Hemmer

@StigHemmer 05AB1E는 256 바이트 의 자체 코드 페이지 를 사용 하여 각 문자를 단일 바이트로 인코딩합니다. 따라서 기본 UTF-8 인코딩에서는 훨씬 더 많은 바이트이지만 46 바이트입니다.
Kevin Cruijssen

7

Java 8, 127126 바이트

()->{String t="Steve Ballmer still does not know",d=".\n";return t+d+(t+=" what he did")+d+(t+=" wrong")+d+t+" with mobile.";}

@KonstantinCh 덕분에 -1 바이트 .

여기에서 시도하십시오.


1
내가 당신의 아이디어를 훔쳤다는 것을 신경 쓰지 않기를 바랍니다. 루프 접근법보다 훨씬 낫습니다.
TheLethalCoder

@TheLethalCoder 당신이 나에게 크레딧을 준 것을 보았으므로 전혀 문제가 없습니다. :), BTW string수 없습니다 var당신의 C #을 람다?
Kevin Cruijssen

한 번에 여러 개를 선언하기 때문에 아니요.
TheLethalCoder

@TheLethalCoder 아 물론, 나 .. ()=>{var t="Steve Ballmer still does not know";return t+".\n"+(t+=" what he did")+".\n"+(t+=" wrong")+".\n"+t+" with mobile"+".";};불행히도 3 바이트 더 길다.
Kevin Cruijssen

1
Konstantin Ch 는 마지막 줄 바꿈이 선택 사항이므로 바이트를 저장하기 위해 "+d끝에를 변경하는 것이 좋습니다 .".
Martin Ender 2016 년


6

젤리 , 52 46 바이트

“ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ“£Ṿ⁴'Þḣ~ẉ“¥Ị)“Ṡ8gÐ/»;\p”.Y

ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ@EriktheOutgolfer의 크레딧 은 그의 답변에 사용되었습니다 .

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

작동 원리

이 작업의 핵심은 Jelly의 사전 압축에 의해 이루어집니다.

ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ

인코딩

Steve| Ball|mer| still| do|es| no|t| know

|단어 사이의 경계는 그 위치를 나타낸다 페치 문자 단위로 부호화 된 사전 및 문자열의 ( mer, est).

마찬가지로 £Ṿ⁴'Þḣ~ẉ인코딩  what| he| did(놀랍게도 사전에서 he나오지 않음 ), ¥Ị)인코딩  wrongṠ8gÐ/인코딩  with| mobile.

“ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ“£Ṿ⁴'Þḣ~ẉ“¥Ị)“Ṡ8gÐ/»

따라서 문자열 배열을 생성합니다

“Steve Ballmer still does not know“ what he did“ wrong“ with mobile”

;\ 각 줄에 문구를 작성하여 연결하여 누적 적으로 줄입니다.

마지막으로 p”.이러한 구와 점 문자의 데카르트 곱을 계산하고 Y결과 문장을 줄 바꿈으로 구분합니다.


내 카운트에 따르면 이것은 97 바이트입니다.
Stig Hemmer

@StigHemmer UTF-8에서는 그렇습니다. 그러나 Jelly는 이 1 바이트 문자 세트 도 지원합니다 .
Dennis

6

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

_=>(s="Steve Ballmer still does not know")+`.
${s+=" what he did"}.
${s+=" wrong"}.
${s} with mobile.`

시도 해봐

o.innerText=(
_=>(s="Steve Ballmer still does not know")+`.
${s+=" what he did"}.
${s+=" wrong"}.
${s} with mobile.`
)()
<pre id=o>


C # 답변을 위해 "빌려온"좋은 접근 방식입니다.
TheLethalCoder

1
어쩌면 게임의 규칙을 이해하지 못하지만이 기능은 브라우저에 있고 사전 태그 내부 텍스트를 사용하는 경우에만 올바르게 작동합니다. o.innerText =와 <pre id = "o">에 의존하고 실제로 요소를 파악하기 때문에 102 바이트를 넘지 않습니까?
Paul

@Paul 나는 이것이 오래되었다는 것을 알고 있지만 익명 함수는 허용되는 I / O 형식의 항목으로 예상되는 데이터를 반환하는 한 직접 표시 할 필요가 없습니다.
Dom Hastings


4

망막 , 95 86 바이트

:`
Steve Ballmer still does not know.
:`.$
 what he did.
:`.$
 wrong.
.$
 with mobile.

온라인으로 사용해보십시오! 편집 : 전체 문자열의 일부 출력에서 ​​문자열 조각으로 전환하여 9 바이트를 절약했습니다. 는 :`그 출력을 만들기 위해 처음 세 단계에 필요합니다.


우 그 사이 모든 것을 삭제, 영리 we사이, 삭제 한 후 모든 것을 wr하고 e, 다음 wie. Retina의 개 행성으로 인해 슈퍼 골프는 아니지만 그럼에도 불구하고 확실히 시원합니다
Skidsdev

@Mayube 전혀 골프가 아닌 것으로 판명되었으므로 방법을 바꿨습니다. (마틴 엔더의 대답만큼 시원하지는 않습니다.)
Neil

3

C #을 158 128 120 114 바이트

()=>{var s="Steve Ballmer still does not know";return s+$@".
{s+=" what he did"}.
{s+=" wrong"}.
 with mobile.";};

@KevinCruijssen 덕분에 30 바이트를 절약했습니다.
@Shaggy 덕분에 6 바이트를 절약했습니다.


120 바이트의 하위 문자열을 사용하는 버전 :

s=n=>"Steve Ballmer still does not know what he did wrong with mobile".Substring(0,n)+".\n";()=>s(33)+s(45)+s(51)+s(63);

@KevinCruijssen에서 128 바이트를 빌린 버전 :

()=>{string t="Steve Ballmer still does not know",d=".\n";return t+d+(t+=" what he did")+d+(t+=" wrong")+d+t+" with mobile"+d;};

158 바이트를 루핑하는 버전 :

()=>{var r="";for(int i=0;++i<5;)r+=$"Steve Ballmer still does not know{(i>1?$" what he did{(i>2?$" wrong{(i>3?" with mobile":"")}":"")}":"")}.\n";return r;};

루프에 삼 항문을 사용하여 매번 새로운 부분을 문자열에 추가하는 간단한 접근법.


따로, 이것은 C# >= 6이전 버전에 보간 된 문자열이 없기 때문에 작동한다는 점에 주목할 가치가 있습니다.
Skidsdev

@Mayube True, 그러나 나는 이것이 내 하하보다 훨씬 낫기 때문에 현재 Kevin의 접근 방식을 사용하여 골프를
치고 있습니다.

Java 응답 D를 이길 수 있도록 2 바이트 더 골프를해야합니다 :
Skidsdev

@Mayube Java 응답은 보통 세미콜론을 포함하지 않기 때문에 C #보다 뛰어납니다. 항상 성가시다!
TheLethalCoder

@Mayube 적어도 한동안은 ...
TheLethalCoder


3

Vim, 79 번의 키 스트로크

iSteve Ballmer still does not know.<CR><C-x><C-l><Backspace> what he did.<CR><C-x><C-l><Backspace> wrong.<CR><C-x><C-l><Left> with mobile

<C-x><C-l>이전 줄로 자동 완성됩니다. 또는 당신의 모든 발생을 대체 할 수있는 <CR><C-x><C-l>과를<Esc>o<C-a>



3

루비, 94 바이트

"!-3Z".bytes{|i|puts"Steve Ballmer still does not know what he did wrong with mobile"[0,i]+?.}

첫 번째 문자열에서 4 개의 문자를 반복하여 각각을 ASCII 값으로 변환하고 매번 두 번째 문자열 n의 첫 번째 n문자를 출력합니다 . ASCII 값이 두 번째 문자열의 길이와 같거나 크면 첫 번째 문자열의 마지막 문자가 무엇인지는 중요하지 않습니다.


3

분열, 299 291 269 ​​바이트

MN"."                             ]              ]        ]
                                  W$]            W$$]     W$$$]
R"Steve Ballmer still does not know"%[" what he did"%[" wrong"%[" with mobile.";
                                    [W              [W        [W

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

마침내 내가 이해하는 2D 언어!

설명

프로그램 은 라인 3 1:0에서 1 질량과 0 에너지 ( 원자)를 가진 원자 R를 생성하고 오른쪽으로 이동하기 시작합니다.

"Steve Ballmer still does not know" 각 문자를 인쇄합니다.

% 에너지가 0이면 원자를 위로 올리거나 에너지를 낮추고 아래로 내립니다.

]원자를 왼쪽으로 움직이고, 원자 $의 에너지를 증가시키고 W, 원자를 위로 움직입니다.

원자가 맨 윗줄에 있으면,에 도달 할 때까지 왼쪽으로 이동하여 "."마침표 N를 인쇄하고, 개행을 인쇄하고 마지막으로 M, 원자를 R다시 아래로 이동하여 원자를 오른쪽으로 이동 .

각 루프의 원자 에너지는 하나 더 높습니다. 즉, 하나 더 통과합니다 %. 네 번째 루프 후 ;세 번째 줄의 끝에 도달 하여 원자를 파괴합니다. 모든 원자가 파괴되면 프로그램이 종료됩니다.


설명을 추가해 주시겠습니까?
얽히고 설킨

@Shaggy가 할 것
Skidsdev

상단을 훨씬 더 많이 압축 할 수 있습니다 : 209 바이트 .
KSmarts

3

Japt , 70 68 65 61 60 59 바이트

여기에 표시되지 않는 몇 개의 문자가 포함되어 있습니다. 전체 코드를 보려면 아래 링크를 따르십시오.

`Sve Ba¥´r Ð]l º not know
 Ø  ¹d
 Ùg
 ØP ¶ßè`£'.iP±X}R

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

  • ETH 덕분에 3 4 바이트가 절약 되었으며 프롬프트가있는 다른 4 바이트가 추가되었습니다.

설명

두 백틱 사이의 모든 것은 다음의 압축 문자열입니다.

Steve Ballmer still does not know
 what he did
 wrong
 with mobile
`...`             :Decompress the string.
     £       }R   :Map over the each line X in the string
         P±X      :   Append X to P (initially the empty string)
      '.i         :   Prepend that to the string "."

1
좋은. 를 수행하여 일부 바이트를 절약 [`Sve Ba¥´r Ð]l º not know`` Ø ¹d`` Ùg`` ØP ¶ßè.`]m@P+=X}한 다음 [and 를 제거하는 몇 가지 바이트를 추가 ]할 수 있습니다 (그리고 알아 내도록하겠습니다).
ETHproductions

좋은 사람, @ETHproductions. 압축과 문자 사이에 SE가 표시되지 않는다는 것을 해독하기 위해 몇 분이 걸렸지 만 거기에 도착했으며 이제 다른 저축도 암시하고 있다고 생각합니다.
얽히고 설킨

1
분할 및 결합을 제거하고 대신 £P±X +'.}R에 끝날 때 수행 하는 것이 좋습니다.
ETHproductions

@ETHproductions는 여전히 61 바이트로 제공되지만 확실히 더 깔끔합니다. 후행 줄 바꿈의 필요성을 제거합니다. 편집 : 아, 잠깐, 아니, 그 접근법으로 1 바이트를 절약 할 수 있습니다 :)
Shaggy



2

SOGL , 42 바이트

⁹⁴<>‘υG‘Γω/w¹‘O‛Æw▓½0H(æ█◄K∆2Ξgh‘4{Tļ.@+;+

설명:

..‘                    push "with mobile"
   ..‘                 push "wrong"
      ..‘              push "what he did"
         ..‘           push "Steve Ballmer still does not know"
            4{         4 times do
              T          output, not popping the top of stack
               ļ.        output "."
                 @+      append a space to the top thing in stack
                   ;+    reverse add (adding the next part to the top thing in stack)

SOGL은 어떻게 사용합니까? 처리 방법과 모든 버전을 설치했지만 실행 방법을 알 수는 없습니다.
Outgolfer Erik 13

버전 레이블이없는 "P5Parser"를 열고 폴더에 data/p.sogl코드 를 붙여 넣습니다. 그런 다음 처리 코드를 실행하면 코드가 실행되고 출력은 콘솔에 있어야합니다.
dzaima

코드를 실행하려고했지만 출력이 없습니다 ..../processing-java --sketch=../SOGL/P5Parser --run p.sogl ""
Erik the Outgolfer

그것은 나를 위해 작동합니다. 대신 전체 경로를 지정하십시오 p.sogl. STDOUT 또는에 아무것도 P5Parser/output.txt없으면 모르겠습니다.
dzaima

이것은 STDOUT과 STDERR로 분리 된 출력입니다.
Outgolfer Erik



2

Nim , 100 바이트

for i in " ,2>":echo "Steve Ballmer still does not know what he did wrong with mobile"[0..i.int],"."

더 읽기 쉬운 코드에서 동일합니다.

const str = "Steve Ballmer still does not know what he did wrong with mobile"

for i in [32, 44, 50, 62]:
  echo(str[0..i], ".")

이 언어에는 문자열 슬라이싱과 포괄적 인 상한이 있습니다. 프로그래밍을 알고 있다면 나머지는 스스로 설명해야합니다.


1

, 71 69 바이트

A⟦⟧βF⪪”↓/‘ZQ≔'Wε}÷&’/↗∧μ~⎇²~ηρπ‖¢β\`σuσI⌀δ#″:§▶¬QγγQZ–” w⁺⪫⊞Oβι w¦.¶

온라인으로 사용해보십시오! 링크는 디버 보시 저가 자동으로 수행 할 수 없으므로 일부 구분 기호가 생략 된 코드의 자세한 버전입니다. 이것은 기본적으로 @KevinCruijssen의 답변 포트입니다.


1

> <> 135 바이트

".wonk ton seod llits remllaB evetS"\
l?!\o99+2*1./"h tahw  "32p10pao     \
52p\".did e"/"   "53p33p
  /\".gnorw"/
1p/\".elibom htiw;"3

이것은 기본적으로 문자열을 통과하고 인쇄 한 다음 전체 정지 및 조건부를 공백으로 대체하여 코드를 따라 계속 움직입니다.

아래> <> 연못 링크를 사용하여 시각화하는 것이 가장 좋습니다.

> <> 연못!

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


1
know거꾸로 철자가 나에게 결코 발생하지 않았습니다 wonk.
디지털 외상

8
@DigitalTrauma 글쎄, 이제 원
ETHproductions


1

> <> 126 바이트

 \"elibom htiw \"10p";"15p
  "gnorw  "10p
  "did eh tahw \"11p
 \"wonk ton seod llits remllaB evetS\"12p04.
  l?!vo
oo00.>a"."
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.