회문 안녕하세요, 세계


29

당신의 임무는 "인사말, 행성!"을 인쇄하는 프로그램을 만드는 것입니다. 콘솔에 정확하게. 충분히 간단 해 보이죠? 자, 여기 속임수가 있습니다. 코드는 회문이어야합니다. 즉, 왼쪽에서 오른쪽과 동일하게 오른쪽에서 왼쪽으로 읽습니다. 표준 허점은 허용 되지 않습니다.


이것은 "hello world"인 것 같습니다.
Outgolfer Erik

4
@ ΈρικΚωνσταντόπουλος 모든 의도와 목적에있어 Hello World와 동일합니다. Hello World 프로그램에서도 자주 사용되는 문장 부호를 사용하여 두 단어로 구성된 짧은 문자열을 인쇄하는 것이 목표입니다. Hello World를 인쇄하는 내장 기능 외에도 실제 문자열과는 별도로 솔루션은 실제 문자열과는 완전히 동일합니다. (그리고 나는 "인사, 행성!"이라는 문구가 내장을 쓸모 없게하기 위해 특별히 선택된 것으로 가정한다.)
Martin Ender

1
MartinBüttner I @ 그렇게 생각 Hello, world!하고 Hello World!A에 대한 허용되는 유일한 출력입니다 안녕하세요 세계 프로그램.
Outgolfer Erik

답변:



16

TI-BASIC, 67 바이트

"!tenalP ,sgniteerG"
"Greetings, Planet!"

이것은 프로그램의 마지막 줄이 화면에 표시되고 첫 번째 문자열은 본질적으로 주석으로 처리되기 때문에 작동합니다.

각 소문자는 2 바이트로 저장되며 나머지 문자는 1 바이트입니다. 규칙을 구부리고 모든 대문자로 인쇄하려면 41 바이트가됩니다 .

"!TENALP ,SGNITEERG"
"GREETINGS, PLANET!"

바이트 수를 더 줄이기 위해 ei(숫자)를 사용할 수 있습니까 ?
애디슨 크럼

1
@VTCAKAVSMoACE 나는 그것을 생각했지만 기울임 꼴로 보였으므로 약간 다르게 보입니다.
NinjaBearMonkey

첫 번째 줄이 주석이 아님을 분명히하기 위해 응답 변수에 저장됩니다.
Julian Lachniet

12

나는 이것이 조금 늦었다는 것을 알고 있지만 ...

> <> (물고기), 47 45 47 바이트 ( 임의의 방향을 사용하지 않으면 실제로 43 45)

x"!tenalP ,sgniteerG"!|o|!"Greetings, Planet!"x

이 답변은 서로 약간 다릅니다. 코드의 어느 방향 으로든 기회가 있습니다 이 실행될 .

따라서 "콘솔에 인쇄"를 사용하면 표준 출력으로 인쇄한다고 가정했습니다. 오류가 발생합니다. 문자열이 stdout으로 인쇄 된 후 오류가 stderr에 발생합니다.

이것이 두 가지 방식으로 작동했다는 것을 증명하기 위해 "무작위 방향"감독 인 "x"를 사용했습니다. 피쉬는 2 차원 언어이므로, 감독이 어떤 방식으로 지시하든 코드는 여전히 (결국) 실행됩니다.

첫 번째 디렉터가 오른쪽을 가리키고 있다고 가정하면 문자가 "스택"에 역순으로로드 된 다음 역 (또는 일반 텍스트)의 역이 인쇄됩니다.

두 디렉터가 모두 왼쪽을 가리키고 있다고 가정하면 문자는 다시 한 번 역순으로 "스택"에로드됩니다 (코드가 여기에 뒤로로드되고 방향이 왼쪽에 있기 때문에). 일반 텍스트)가 인쇄됩니다.

임의 화 된 디렉터가 위 또는 아래를 가리켜도 문제가되지 않습니다. 피쉬는 코드의 밑면 또는 뒷면으로 반복하여 임의 화기를 가리 킵니다. 이런 식으로, 코드가 안쪽으로 향할 때까지 랜덤 화기를 사용하여 실행할 코드쪽으로 계속 반복됩니다.

!|o|!비트는 양쪽에서 다음을 수행합니다

  • !다음 명령어를 건너 뜁니다 (항상 건너 뜁니다 |)

  • |반사판입니다. 안쪽으로 향 o합니다.

  • o 스택의 현재 항목을 문자로 콘솔에 출력하고 스택에서 제거합니다.

기본적으로 이것은 "욕실에서 두 개의 거울을 함께 눌렀습니다"라는 속임수로 더 이상 할 수 없을 때까지 출력됩니다.

이제 고양이 이모티콘을 사용합니다. >o<출력을 무한대로 안쪽으로 리디렉션하지만 여전히 오류가 발생하지만 건너 뛰기로 건너 뛰지 않아도 벗어날 수 있습니다.

내가 처음 옳았다는 것이 밝혀졌다 – 두 번째 시도는 회문 이 아니 었지만 반사적 이었다 .

물고기 (stderr로 인쇄하지 않고), 64 바이트 (ew)

x"!tenalP ,sgniteerG"!;oooooooooooooooooo;!"Greetings, Planet!"x

이 친구는 조금 더 길어요.

그것은 동일한 무작위 화살표 기능을 가지고 있으며 (두 가지 방식으로 작동 함을 증명하기 위해) stderr에 인쇄하지 않습니다.

여기서의 차이점은 분명합니다. 말 그대로 스택의 모든 항목을 인쇄 한 다음로 실행을 종료 ;합니다.

!;로 즉시 실행을 종료하지 않고 !그것의 역할을 다른 쪽을 돌 때까지 스킵 (여기서는 최종 실행,)은 다음 항목 및 계속;! 이 아무것도 스킵 전에 실행을 종료하며,.

짧은 답변과 동일한 무작위 방향 패턴을 따릅니다.



@Aaron 일반적으로 여기서 Fish는> <>를 의미한다고 가정하지만, 전에 그 문제가 발생했습니다. 추가하겠습니다. 감사!
Addison Crump

내가 짐작할 수 있듯이, 전체 코드가 수행 될지 여부는 예측할 수 없다. 프로그램 카운터가 두 개의 임의 방향 명령 사이에 고정되거나 임의 방향 명령 중 하나에 고정 된 경우 (예 : 아래로 내려 가고 맨 아래에 도달하고 해당 명령으로 돌아와서 다시 시작하는 경우)?

@GLASSIC 프로그램은 한 번만 출력되며 전체 코드는 실행되지 않습니다.
애디슨 크럼프

11

풍선 껌 , 38 바이트

0000000: 73 2f 4a 4d 2d c9 cc 4b 2f d6 51 08 c8 49 cc 4b 2d 51 04  s/JM-..K/.Q..I.K-Q.
0000013: 04 51 2d 4b cc 49 c8 08 51 d6 2f 4b cc c9 2d 4d 4a 2f 73  .Q-K.I..Q./K..-MJ/s

10

마카로니 0.0.2 , 52 바이트

print "Greetings, Planet!""!tenalP ,sgniteerG" tnirp

주석을 사용하지 않는 솔루션. (마카로니에는 주석이 없기 때문에 ...)


15
마카로니 댓글 이 없습니다 ? ಠ_ಠ
Alex A.

8

CJam, 41 바이트

3 바이트를 끈 데니스에게 감사합니다.

"!tenalP ,sgniteerG";"Greetings, Planet!"

2
줄을 뒤집어 야합니다. 지금 당신은 올바른 출력을 팝업하고 반전 출력을 인쇄하고 있습니다.
NinjaBearMonkey

@NinjaBearMonkey 으악. 고정.
The_Basset_Hound

GolfScript에서도 작동합니다.
Ilmari Karonen


6

자바 스크립트, 56 바이트

이것은 모든 브라우저에서 실행할 수 있습니다.

alert("Greetings, Planet!")//)"!tenalP ,sgniteerG"(trela

교체 print/tnirpalert/trela, 너무, 다른 엔진에서 작동합니다.
ETH 프로덕션

@ETHproductions는 내가 그렇게 생각하지 않았다고 믿을 수 없습니다. 감사합니다!
Downgoat December


@jrich 당신의 권리 alert`Greetings, Planet!`//`!tenalP ,sgniteerG`trela는 52 바이트입니다
Aᴄʜᴇʀᴏɴғᴀɪʟ

5

GolfScript, 41 바이트

"Greetings, Planet!":"!tenalP ,sgniteerG"

엄마 좀 봐! Web GolfScript 에서 온라인으로 사용해보십시오 .

소스 코드의 후반부는 문자열을 두 번째 문자열에 저장합니다.

"Greetings, Planet!":"!tenalP ,sgniteerG"
"!tenalP ,sgniteerG"

인쇄 할 것이다

Greetings, Planet!Greetings, Planet!

5

C ++, 129 바이트

의견 없이이 작업을 시도하면 내가 볼 수있는 방법이 없어 깊고 어두운 전 처리기 악몽이되었습니다. 대신 나는 가능한 한 짧게하는 것을 목표로했습니다.

/**/
#include<cstdio>
int main(){puts("Greetings Planet!");}//*/
/*//};)"!tenalP sgniteerG"(stup{)(niam tni
>oidtsc<edulcni#
/**/

5

파이썬 3, 57 바이트

print('Greetings, Planet!')#)'!tenalP ,sgniteerG'(tnirp

괄호로 문제를 해결했습니다.

파이썬 2, 53 바이트

print'Greetings, Planet!'#'!tenalP ,sgniteerG'tnirp

파이썬 2에서 필요한 괄호와 공백이 없다는 이점을 사용했지만 그다지 큰 차이는 없었습니다.


5

경쟁하지 않는 젤리

25 바이트이 대답은 경쟁이 아닙니다. 도전은 젤리를 만들기 이전에 시작 되었기 때문입니다.

»1ị“RsẈḄ,#ʠU“Uʠ#,ḄẈsR“ị1»

봐봐, 아니 댓글! 온라인으로 사용해보십시오!

작동 원리

»1ị“RsẈḄ,#ʠU“Uʠ#,ḄẈsR“ị1»  Main link. No arguments.

   “        “        “  »  Decompress all three strings; yield a list of strings.
    RsẈḄ,#ʠU               (decompresses to 'Greetings, Planet!')
             Uʠ#,ḄẈsR      (decompresses to ' WafdkmC Posited,')
                      ị1   (decompresses to 'Taarhus')

»1                         Take the maximum of the default argument (0) and 1.
  ị                        Select the string at the index to the left.

4

붙어 , 41 바이트

"Greetings, Planet!"p"!tenalP ,sgniteerG"

인쇄 명령이 실행되면 자동 스택 인쇄가 억제된다는 점을 제외하고는 CJam 응답과 상당히 유사합니다.


3

매스 매 티카, 52 바이트

Print@"Greetings, Planet!""!tenalP ,sgniteerG"@tnirP

또한 Null "!tenalP ,sgniteerG"[tnirP]인쇄되지 않는을 생성합니다 .


1
참고로, 많은 답변 (이 답변 포함)은 제목 / 점수 및 코드 일뿐이므로 저품질 대기열에 던져졌습니다. 아무 문제가 없지만 설명과 같은 텍스트를 추가하면 자동으로 표시되지 않도록 할 수 있습니다.
Mego

@ Mego 좋아, 그들은 꽤 자명하다고 생각했습니다.
LegionMammal978

1
나는 설명이 부족하다고 나쁜 말을하지 않습니다 (설명이있는 답변은 더 많은 투표를하는 경향이 있지만), 나는 당신의 (유효한) 답변이 길이 때문에 자동으로 바뀌고 있음을 알려줍니다. :)
Mego

2
당신은 2 바이트를 저장할 수 있습니다 Echo에서 v10.3.
shrx

3

핵분열 , 45 43 바이트

2 바이트를 절약 한 jimmy23013에게 감사합니다.

;"!tenalP ,sgniteerG"R"Greetings, Planet!";

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

R오른쪽으로 이동하는 원자를 초기화합니다. "를 누르기 전에 원하는 문자열을 STDOUT으로 간단히 인쇄하는 문자열 모드를 전환 ;하여 원자를 제거하고 프로그램을 종료합니다. 전반부는 단순히 실행되지 않습니다.


솔직히 말하면 실마리가 없습니다. 감사.
마틴 엔더

3

05AB1E , 16 바이트

암호:

”!º¥,ÁÙ””ÙÁ,¥º!”

설명:

”!º¥,ÁÙ”          # Compressed string which results in "! Crm, Everywhere".
        ”ÙÁ,¥º!”  # Compressed string which results in "Greetings, Planet!".
                  # Top of stack is implicitly outputted.

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


2

STATA, 52 바이트

di "Greetings, Planet!"//"!tenalP ,sgniteerG" id

주석을 사용하지 않는 약간 더 긴 (53 바이트) 버전은 다음과 같습니다.

#d
di "Greetings, Planet!";"!tenalP ,sgniteerG" id
d#

#d [something];[something]이 아닌 경우 구분 기호 (처음에는 캐리지 리턴)를 cr변경하므로 첫 번째 명령은 구분 기호를로 변경 ;하고 두 번째 명령 은 문자열을 인쇄하고 세 번째 명령 은 끝까지 계속됩니다. 왜 그런지 이것이 오류 (알 수없는 명령 "! tenalP, sgniteerG"또는 기타)를 던질 것이라고 추측했을 것입니다.


2

apt , 29 바이트

이 프로그래밍 언어는 질문이 게시 된 후에 작성되었지만이 질문에 대해서는 작성되지 않았습니다.

`!t?ÓP ,?Ä>ÎG`;`GÎ>Ä?, PÓ?t!`

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

마다 ? 은 인쇄 할 수없는 유니 코드 문자 (U + 0082, U + 000F, U + 000F 및 U + 0082)입니다.

재미있는 사실 : Japt가 한 달 더 일찍 출판 되었다면, 합법적으로이 도전에서 승리했을 것입니다.


2

APL, 41 바이트

'Greetings, Planet!'⍝'!tenalP ,sgniteerG'

APL에서는 마지막 값이 인쇄되고 램프 문자 (⍝)가 주석을 시작합니다.


안녕하세요, PPCG에 오신 것을 환영합니다! 좋은 답변입니다!
NoOneIsHere 여기


2

TCL, 80 바이트

proc unknown args {puts "Hello World!"}
}"!dlroW olleH" stup{ sgra nwonknu corp

설명 : TCL은 unknown정의되지 않은 명령에 대한 호출이 발생 하면 전역 proc을 실행합니다 . 첫 번째 행은 해당 proc를 간단한 "hello world"프로그램으로 재정의합니다.

TCL의 인용 규칙은 매우 미묘합니다. 열린 중괄호는 다음에 일치하는 가까운 중괄호 까지 확장 된 인용 단어를 시작 하여 중첩 된 인용 단어를 허용합니다. 그렇지 않으면 중괄호는 일반 문자로 취급됩니다. 다섯 개 단어 : }"!dlroW olleH", stup{, sgra, nwonknucorp. 이름이 지정된 명령이 없습니다.}"!dlroW olleH" 된 이 정의되지 않았으므로 undefined첫 번째 행 의 proc이 대신 호출됩니다.

비슷한 질문이 고대의 StackOverflow에 게시되었습니다. 이후 닫히고 삭제되었습니다. 이 답변 에서 뺨 TCL 샘플에서 내 솔루션을 혀로 사용했으며 이제 설명을 요청하는 주석을 받고 있으므로 여기에서 답변을 다시 작성하십시오.




1

Unefunge 98-49 바이트

"!tenalP ,sgniteerG<DC1>"k,@,k"<DC1>Greetings, Planet!"

위의 코드에는로 표시되는 코드 17 (장치 제어 1)이있는 인쇄 할 수없는 두 문자가 포함되어 있습니다 <DC1>.


1

MSM , 73 바이트

GGreetings, Planet!.................,.................!tenalP ,sgniteerGG

중간 직전 상반부 는 오른쪽에 ,추가 G를 포함하여 리버스 인사말 문자열을 작성합니다 . 중간은 ,그것을 떨어 뜨리고 나머지는 정식 "Hello / Greeting / whatever"프로그램입니다. 메시지에가 포함되어 있으므로 양쪽 끝에 추가 문자가 필요합니다 ,. 왼쪽이 실행되고을 삭제합니다 s. 두 ,s따라서 왼쪽 연결 점에 대한 교체의 필요 G들. ,오른쪽에 최종 문자열로 실행하지만 빌드되지 않습니다.


1

CoffeeScript, 53 바이트

Ruby 및 Lua와 유사하며 여기에있는 거의 모든 변형이 있습니다.

alert 'Greetings, Planet!'#'!tenalP ,sgniteerG' trela


1

배쉬, 52 48 바이트

echo Greetings, Planet!||!tenalP ,sgniteerG ohce

ksh, zsh, yash, dash에서도 작동합니다. 그러나 tcsh는 아닙니다.

$ cat x.sh
echo Greetings, Planet!||!tenalP ,sgniteerG ohce
$ bash x.sh
Greetings, Planet!
$ ksh x.sh
Greetings, Planet!
$ zsh x.sh
Greetings, Planet!
$ yash x.sh
Greetings, Planet!
$ dash x.sh
Greetings, Planet!
$ tcsh x.sh
tenalP: Event not found.
$

1
모든 따옴표를 제거하십시오.
manatwork

1
아, bash 답변은 python = /보다 짧았습니다. 드로잉 보드로 돌아갑니다!
Ashwin Gupta

1

루아, 52 바이트

print"Greetings, Planet!"--"!tenalP ,sgniteerG"tnirp

루아 터미널에서는 44 바이트입니다.

="Greetings, Planet!"--"!tenalP ,sgniteerG"=

내 잘못이야. 경고 주셔서 감사합니다!
Digital Veer

모든 괄호를 제거하십시오. 단일 문자열 매개 변수가있는 함수의 경우 선택적입니다.
manatwork

Lua 5.3은 =터미널에서 필요하지 않으므로 2 바이트가 떨어져 있습니다. 나는 그것이 2015 년에 존재했다고 생각합니다.
발은

1

은하수 1.5.10 , 43 41 39 바이트

"Greetings, Planet!"!tenalP ,sgniteerG"

설명

"Greetings, Planet!"                       # push the string to the stack
                    !                      # output the TOS
                     tenalP ,sgniteerG"    # throws an error and exits

용법

python3 milkyway.py <path-to-code>

당신이나요 정말 코멘트를해야합니까? 이것이 스택 기반 (암시 적 출력이없는) 경우 스택 출력 만 작동합니다.
Addison Crump

네가 옳아! 감사. @FlagAsSpam
Zach Gates
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.