지미가 플랫폼에서 떨어질까요?


29

뒷이야기

내 친구 지미를 만나십시오 :

/o\

지미는 플랫폼에 서기를 좋아하는 작은 캐릭터입니다. 플랫폼에 안전하게 서있는 Jimmy는 다음과 같습니다.

         /o\
  -------------

이제 Jimmy는 균형 감각이 좋으므로 다음과 같이 플랫폼에서 한쪽 다리로 안전하게 견딜 수 있습니다.

   /o\
    -------------------

그가 플랫폼에서 2 개 이상의 신체 부위와 함께 서 있으면 넘어 질 것입니다. 이 두 가지 모두 Jimmy가 쓰러지는 예입니다.

/o\                                       /o\
  ----------        ----------------------   

도전

지미가 플랫폼에서 떨어지지 않고 플랫폼에 서있을 수 있다면 지미의 플랫폼과 위치가있는 문자열을 고려하여 결정하는 프로그램을 작성해야합니다.

  • 입력 : 지미의 위치와 그 아래 플랫폼의 위치를 ​​나타내는 두 줄. 이것은 두 개의 개별 입력, 단일 입력 또는 일종의 배열에서 나올 수 있습니다.

    1. 기능 및 표준 입력을 포함하여 합리적인 형식으로 입력 할 수 있습니다. 언어가 다른 입력 방법을 지원하지 않는 경우에만 하드 코딩을 사용하십시오.
  • 출력 : 부울 값 true 및 false 또는 각각 true / false를 나타내는 정수 1 또는 0.

    1. 부울 값은 Jimmy가 플랫폼에있을 수 있는지 여부에 따라 결정됩니다. Jimmy가 플랫폼에있을 수 있으면 true, 떨어지면 false입니다.
  • 플랫폼 크기는 임의적이며 마음대로 변경할 수 있습니다. 당신의 프로그램은 그것을 설명해야합니다.

    1. 플랫폼은 길이가 0 일 수 없으며 플랫폼이 완전해야합니다 (플랫폼에 구멍이 없음).

    2. 두 신체 부위가 플랫폼에 매달려있을 때 지미가 떨어짐을 기억하십시오. 신체 부분은 신체의 ASCII 문자 중 하나입니다.

    3. 플랫폼 끝의 후행 공백은 필요하지 않지만 프로그램은 플랫폼 다음에 공백이 있고없는 곳에서 두 가지 상황을 모두 고려해야합니다.

  • 금지 된 표준 허점에 유의 하십시오 .

테스트 사례

         /o\               ✔️ TRUE
  -------------

/o\                        ✔️ TRUE
 ----------

                    /o\    ❌ FALSE
  ------------------

               /o\         ❌ FALSE
  -------

    /o\                    ❌ FALSE
     -

채점

이것은 이므로 가장 낮은 바이트 수가 이깁니다.

리더 보드

아래 위젯 / 스 니펫을 확장하여이 게시물의 리더 보드를 볼 수 있습니다. 게시물을 순위에 포함 # header text시키려면 다음 정보 가 포함 된 헤더 ( )가 필요합니다 .

  • 언어의 이름 (쉼표 ,또는 대시 로 끝남 -) 다음에 ...

  • 헤더에 표시 할 마지막 숫자 인 바이트 수입니다.

예를 들어, JavaScript (ES6), 72 bytes유효하지만 Fortran, 143 bytes (8-bit)바이트 수는 헤더의 마지막 숫자가 아니기 때문에 유효하지 않습니다 (답은 8 바이트로 인식되므로이를 활용하지 마십시오).

<!-- Run the snippet to see the leaderboard. Report any bugs to @xMikee1 on Github -->    <iframe src="https://xmikee1.github.io/ppcg-leaderboard/?id=187586" width="100%" height="100%" style="border:none;">Oops, your browser is too old to view this content! Please upgrade to a newer version of your browser that supports HTML5.</iframe><style>html,body{margin:0;padding:0;height:100%;overflow:hidden}</style>


지미 다음에 공백이 있다고 가정 할 수 있습니까? 또한 문자 배열을 허용하는 경우 일부 언어에서는 공백으로 채워야합니다.
닉 케네디

@NickKennedy 후행 공백 또는 후행 공백을 설명해야합니다. 나는 그것에 대해 엄격한 규칙을 설정하지 않았습니다.
connectcharger

12
제목은 "의지 지미입니다 가을 플랫폼"당신은 출력에 "의지의 지미의 요구 에 체류 플랫폼을". 이것이 예상되는 동작입니까?
tsh

6
테스트 케이스를 다시 복사하여 붙여 넣기하기 쉽게 다시 포맷 할 수 있습니까?
얽히고 설킨

2
진실 거짓 값 교환이 허용됩니까? (즉, Jimmy가 쓰러지면 true를 출력하고 그렇지 않으면 false를 출력합니까?)
Mr. Xcoder

답변:


20

젤리 , 6 바이트

n⁶Sċ2Ẓ

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

설명:

n⁶Sċ2Ẓ  args: z (e.g. [['/', 'o', '\\'], [' ', '-']] => 0)
        implicit return value: z ([['/', 'o', '\\'], [' ', '-']])
n⁶      dyad-nilad pair ([[1, 1, 1], [0, 1]])
 ⁶       4th command-line argument or space [4th CLA assumed absent] (' ')
n        vectorized inequality ([[1, 1, 1], [0, 1]])
  S     reduction by addition with base case 0 ([1, 2, 1])
   ċ2   dyad-nilad pair (1)
    2    literal (2)
   ċ     number of occurrences of right in left (1)
     Ẓ  primality (0)

26
때때로 나는 누군가가 6 바이트 단위로 누군가가 플랫폼에서 자신의 운명으로 떨어질 것인지 확인할 수 있음을 알기 위해 얼마나 멀리 발전했는지 궁금합니다.
IMustBeSomeone 1

4
@IMustBeSomeone, 내가 운명의 플랫폼에서 떨어질 예정이라면 누군가 나에게 빨리 말하고 싶습니다!
얽히고 설킨

18
@Shaggy 저는 사람들이 소개를 통해 문제를 제기 할 때 항상 재미 있다고 생각했습니다. "X에 너무 많은 시간을 소비하고 싶지 않기 때문에 코드 골프와 성능에도 불구하고 코드는 가능한 짧아야합니다." 대부분의 경우 반대입니다. 성능에 관심이있는 에서 O ( n n )으로 가는 바이트를 저장할 수 있다면, 바이트 를 얻습니다! ; pO(log(n))O(nn)
Kevin Cruijssen

1
젤리를 모르지만 S행 대신 열을 합산하는 이유는 무엇입니까? : S 위키를 올바르게 본다면 코드는 다음과 같습니다 : n⁶각 문자가 공백과 같지 않은지 확인하십시오 (예 :) ['/o\\', ' -'] -> [[1,1,1],[0,1]]; S합계 목록 (그러나 어떤 이유로 행 대신 열을 합산합니다.. so [[1,1,1],[0,1]] -> [1,2,1]); ċ22의 양을 세고; 결과가 암시 적으로 출력 된 후 소수 (2 또는 3)인지 확인하십시오. 그러나 나는 다음 [[1,1,1],[0,1]]과 같이 요약 할 것으로 예상 된다 [3,1].
Kevin Cruijssen

1
@KevinCruijssen S0;+/Ɗ초기 값으로 더하기 (벡터화)하여 감소하는 것과 같습니다 0. §기대했던 S일을합니다.
아웃 골퍼 Erik

19

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

로 입력을 (a)(b)받습니다. 0 또는 1 반환합니다 .

a=>b=>b[a.search`o`]=='-'&/--/.test(b)

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

방법?

우리 "o"는 첫 번째 줄에서 지미의 몸 가운데 부분 의 위치를 찾고 같은 위치에 두 번째 줄에 대시가 있는지 테스트합니다.

b[a.search`o`] == '-'

이 상황에서 Jimmy가 안전하지 않은 유일한 경우는 단일 대시 플랫폼입니다.

/o\
 -

2

/--/.test(b)

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

지미 아래에 항상 대시 또는 공백이 있다고 가정하면 대체 버전입니다 (예 : 입력이 직사각형 임).

a=>b=>b[a.search`o`]!=0&/--/.test(b)

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

0


와우. 어떻게 작동하는지 설명해 주시겠습니까?
connectcharger

@connectyourcharger 설명을 추가했습니다.
Arnauld

3
천재! JS 답변은 일반적으로 그렇게 짧지 않습니다.
connectcharger


@Oliver가 실패합니다"/o\\\n__"
tsh

10

엑셀, 67 45 44 바이트

=(MID(A2,FIND("o",A1),1)="-")*(TRIM(A2)>"-")

A1플랫폼에 지미 를 넣고A2 .

2 가지 조건 확인 :

  • 지미의 몸통은o )이 플랫폼에 있습니까?
  • 플랫폼이 단순한 것 이상 -입니까?

1
@Keeta 처음 5 분 동안의 편집 내용은 편집 기록에 표시되지 않습니다.
자금 모니카의 소송

내가했던 제한된 테스트에서, 나는 당신이 바꿀 수 있다는 생각 <>>
테일러 스콧

9

파이썬 3, 88 43 바이트

입력은 두 개의 문자열을 포함하는 목록 형식으로 제공됩니다. 첫 번째 문자열은 첫 번째 행입니다. 두 번째 줄은 두 번째 줄입니다.

lambda a:sum(1-(" "in i)for i in zip(*a))>1

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

43 바이트를 묶는 다른 버전 (43보다 짧게 얻을 수 없었습니다) :

lambda a,b:b[a.find("/"):][:3].count("-")>1

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

Jo King의 팁 덕분에 42 바이트가 줄었습니다.

구 버전:

lambda s:sum((s.split("\n")[1]+" "*len(s))[i]=="-"and s[i]!=" "for i in range(len(s)))>1

Sriotchilism O'Zaic 덕분에 -2 바이트.

이것은 두 개의 개별 입력을 취한 다음 해당 문자를 페어링하여 작동합니다. 문자가 공백이 아닌 쌍 수를 계산 한 다음 그 수가 1보다 크면 True를 리턴합니다.


8

펄 6 , 18 바이트

{?/''B|Bq/}o&[~^]

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

두 개의 매개 변수를 사용하여 Jimmy가 플랫폼에 머무를 지 여부의 부울을 리턴합니다. 이것은 두 줄을 XOR 링하고 Jimmy의 어느 한 부분이 여전히 플랫폼에 있는지 확인하여 작동합니다.

설명:

             &[~^]   # String XOR operator
{          }o        # Combined with the anonymous function
 ?/       /          # That checks for the regex match
   ''B              # Unprintable, B, which is "/o" ~^ "--"
       |Bq           # Or B, q, which is "o\" ~^ "--"


6

하스켈 , 34 바이트

a#b=[1|(p,'-')<-zip a b,p>' ']>[1]

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

나는 아래 기술을 다른 하스켈 답변 과 결합하여 이것을 얻었습니다 .

하스켈 , 45 바이트

x#'-'|x/=' '=1
x#y=0
(((>1).sum).).zipWith(#)

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

이것은 플랫폼 위에있는 신체 부위 (공백이 아닌 문자)의 수를 세고 1보다 큰지 확인합니다. 신체 부위가 아닌 플랫폼에서 신체 부위를 세는 이유 zipWith는 최상위 라인을 잘라 내기 때문 입니다. 바닥의 ​​길이가되어 지미의 신체 부위를 잘라낼 수 있습니다. 이렇게하면 cycle" "목록을 채우는 것과 같은 일을하지 않아도됩니다 .


1
infix로 변환하여 2 바이트를 줄일 수 없습니까?

1
@cole Yep 난 당신이 댓글 :) 때 편집을하고 있었다 :)
밀 마법사

4

MathGolf , 6 14 바이트

`^@╞^αmÆû-oñ╧╙

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

Nick Kennedy가 제시 한 엣지 케이스를 설명하기 위해 8 바이트를 추가해야했습니다.

"-o-"두 줄의 압축 문자열의 하위 문자열 인지 , 첫 번째 입력 행이 첫 번째 문자가 제거 된 압축 문자열 인지 확인합니다 . 유일한 변경은 문자로서 입력되는인지와 두 개의 문자열로의 입력을 받고 /o\\있기 때문에,\\MathGolf에서 문자열에 백 슬래시를 입력하는 올바른 방법 입력 됨).

설명

`                duplicate the top two items
 ^               zip top two elements on stack
  @              rrot3
   ╞             discard from left of string/array
    ^            zip top two elements on stack
     α           wrap last two elements in array
      mÆ         explicit map using 5 operators
        û-oñ     push "-o" and palindromize to make "-o-"
            ╧    pop a, b, a.contains(b)
                 map block ends here
             ╙   max of list

오, 그건 내 MathGolf 답변 보다 더 나은 방법입니다 . 인터리브 후에는 직접 "-o-"를 확인하는 대신 크기 2의 부분으로 다시 나눕니다.
케빈 크루이 ssen


@NickKennedy 잘 잡아! 코드를 수정하고 게시물이 전달되면 업데이트하는 방법을 알아 보겠습니다. 그래도 불행히도 몇 바이트를 추가 할 것입니다.
maxb

3

05AB1E (레거시) , 9 8 7 바이트

ζðм2ùgp

-1 바이트 덕분에 @ Mr.Xcoder 의 접근 방식ðм2ù .

두 문자열의 목록으로 입력하십시오.

새로운 05AB1E 버전에서는 2D 문자 목록에서만 작동하는 ζ반면 문자열 목록과 2D 문자 목록을 바꿀 수 있기 때문에 기존 버전의 05AB1E ζ에서만 작동합니다.

온라인으로 시도 하거나 모든 테스트 사례를 확인하십시오 .

설명:

ζ        # Zip/transpose; swapping rows/columns, with space as default filler
 ðм      # Remove all spaces from each string
   2ù    # Only leave strings of size 2
     g   # Count how many there are left
      p  # Check if this is a prime (2 or 3)
         # (after which the result is output implicitly)

1
제목이 리더 보드를
깨뜨립니다.

@connectyourcharger Ah, 아마도 bytes코드 페이지에 항상 링크하기 때문에 UTF-8로 인코딩되지 않고 대신 사용자 정의 인코딩을 사용한다는 것을 알 수 있습니다. ;) 원하는 경우 인코딩을 제목 아래에 놓기 위해 답변을 편집 할 수 있지만 솔직히 리더 보드 코드에서 처리 할 수 ​​있습니다.
케빈 크루이 ssen

05AB1E에 대한 특별한 경우를 추가해야한다고 생각합니다. 코드 페이지에 문제가있는 유일한 언어 중 하나입니다. 곧 들어오는 문제를 해결하십시오.
connectcharger

1
수정 된 정규식을 만들기 위해 고심하고 있습니다. 지금은 지속적인 버그가 될 것입니다. github.com/xMikee1/ppcg-leaderboard/edit/master/docs/script.js 스크립트를 작성하려면 여기를 클릭하십시오 . 바이트 구문 분석을 완전히 리팩토링해야 할 수도 있습니다.
connectcharger

URL을 https://github.com/Adriandmen/05AB1E/wiki/Codepage?7무효화하지 않고 7을 마지막 숫자로 만들기 위해 URL을 수정할 수 없습니까 ?
LF


3

Dyalog APL 확장, 11 10 8 바이트

21⊥∧⌿⍤<

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

설명:

21⊥∧⌿⍤<  a monadic train
       <  Compare the input with the implicit prototype element - a space.
          Returns a boolean matrix of characters that are greater than 0x20
    ∧⌿⍤   and-reduce that, i.e. places where both Jimmy and a platform is
  1      base 1 decode, aka sum - the amount of body parts over the platform
2        is that greater-or-equal to 2?

Adám 덕분에 -2.



3

엑셀, 36 바이트

=LEN(TRIM(MID(A2,FIND("/",A1),3)))>1

A1에있는 플랫폼에있는 Jimmy A2.

Jimmy의 위치를 ​​찾고 플랫폼의 3 바이트를 가져와 공백을 제거합니다. 결과 플랫폼 길이가 충분히 길면 Jimmy가 서 있습니다.


3

EXCEL, 94 71 바이트 VBA (Excel), 87 바이트

A1= 지미, A2= 플랫폼

-23 바이트 @Wernisch에게 감사합니다.

=(FIND("-",A2)-FIND("/",A1)<2)*(FIND("\",A1)-LEN(A2)<2)*(TRIM(A2)<>"-")

?[(FIND("-",A2)-FIND("/",A1)<2)*(FIND("\",A1)-LEN(A2)<2)]*(len(replace([A2]," ",""))>1)


1
trim대신 사용할 수 없습니까 len(replace?
베르니 슈

오! 결코 내 머리에 가라 앉지 않습니다. haha Thanks @Wernisch :)
remoel

3

/// , 85 93 87 바이트

/~/\/\///\/o\\/(o)~ 
/
~
~/ (o) /(o)~ (o)-/(o)~- -/--~(o) - ~/) ~/)-~/o~/(-/1~-~/(~/)~ 

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

Jimmy가 안전하면 출력값은 1입니다. 그렇지 않으면 아무것도 출력하지 않습니다. (단일 1과 0) ///에 입력을받는 다른 방법이 없기 때문에 하드 코딩해야합니다.

/~/\/\///\/o\\/(o)~ 
/
~
~/ (o) /(o)~ (o)-/(o)~- -/--~(o) - ~/) ~/)-~/o~/(-/1~-~/(~/)~ //<INPUT HERE> 

예를 들면 다음과 같습니다.

/\/o\\/(o)// 
/
//
/// (o) /(o)// (o)-/(o)//- -/--//(o) - ///) ///)-///o///(-/1//-///(///)//         /o\
  ------------- 

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

뒤에 공백이 <INPUT HERE>있습니다.

설명:

노트! 주석으로 인해 설명 코드를 실행할 수 없습니다. 주석은 중괄호로 묶습니다. 또한 원래 코드 //는로 대체 된 골프를 사용합니다 ~. 이 코드는 설명에서 생략되었습니다.

/\/o\\/(o)/            {replace Jimmy with a Jimmy with curvy arms, because slashes are hard to manipulate in this language}
/ 
/
/                      {remove unneeded spaces after Jimmy, but before the floor}

/
//                     {get rid of the line break

/ (o) /(o)/            {remove all the spaces before both Jimmy and the floor}
/ (o)-/(o)/            {for each floor tile, remove it and one space before Jimmy. This detects whether Jimmy lines up with the floor.}
                       {If Jimmy is before the floor, then there will be extra floor.}
                       {If Jimmy is behind the floor, then there will be extra spaces before Jimmy.}
/- -/--/               {Handle the case where there is a hole beneath Jimmy but he is still well-supported}

/(o) - //              {Handle the case where only Jimmy's head is on the floor. The space at the end of the code is necessary for this.}
/) //                  {The rest of the substitutions clean up the result and handle each of the possible results that could exist at this point}
/)-//
/o//
/(-/1/
/-//
/(//
/)//


              /o\   
               --
 {there is a space right before this comment. The comment is only here to make the space visible and explain itself.}

  • 버그 수정을위한 +8 바이트
  • 표준 ///골프 트릭 을 적용하여 -6 바이트

1
소스 코드는 이상한 이모티콘처럼 보입니다. \\ (o)-(o) //
tsh


2

하스켈, 59 바이트

f a b=sum[1|(p,q)<-zip a$b++cycle" ",elem p"/o\\",q==' ']<2

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

함수는 다음과 같이 호출됩니다. f "/o\\ " " -- "

작동 방식 f "/o\\" " -":

b++cycle" "- 공간을 추가 한 후 무한 개수 b지미 항상 위에되도록 -하거나 ( " -"" - ..."

zip a$b++cycle" "-두 줄을 함께 묶습니다 ( [('/',' '), ('o','-'), ('\\',' ')])

(p,q)<-zip a$b++cycle -압축 목록의 각 쌍마다

[1|(p,q)<-zip a$b++cycle" ",elem p"/o\\",q==' ']- 1길이가 조건을 만족하는 쌍 수인 s 목록을 생성합니다 .

elem p"/o\\"-맨 위 줄의 캐릭터는 지미의 신체 부위 중 하나입니다. (이 예에서는 세 쌍 모두에 만족함)

q==' '-맨 아래 문자열의 문자는 공백입니다. ( ('/', ' ')및로 만족 ('\\', ' '))

따라서 쌍은 지미의 신체 부위 중 하나가 공간 위에있는 것이어야합니다.

이 예에서 두 쌍이 두 조건을 모두 만족하므로 목록은 [1,1]

sum[1|(p,q)<-zip a$b++cycle" ",elem p"/o\\",q==' ']-이 1예에서 s 의 합계 (예 : 목록의 길이)를 가져옵니다 2.

sum[1|(p,q)<-zip a$b++cycle" ",elem p"/o\\",q==' ']<2-공간 위의 신체 부위 수가 2 미만인지 확인하십시오.이 예에서는 그렇지 않으므로 Jimmy가 떨어집니다. :(


난 그냥 당신이 당신의 대답은 짧게 나에게 도움이 있음을 알려 줄 알았는데 내 자신의 대답을 . 감사합니다!
밀 마법사


2

코 틀린, 60 바이트

fun String.c(b:String)=zip(b){i,j->i>' '&&j>' '}.count{it}>1

설명:

fun String.c  # Define an extension function on string, so we don't have to provide a first argument (and we also have string method calls for free)
(b:String)    # Pass the second string as argument
=             # Shorthand syntax for fun body
zip(b)        # Essentially a.zip(b). Creates a List<Pair> by joining both arrays. 
              # Takes care of trailing whitespace, because it will be the size of the smaller array
{i,j->        # Declare a transformer lambda as second function argument
i>' '&&j>' '} # This essentially translates to: If i!=' ' and j=='-'
.count{it}    # Count the true values
>1

Code Golf에 오신 것을 환영합니다! 그것은 아주 좋은 첫 번째 대답입니다.
connectcharger

2

/// , 57 바이트

/|/\/\///\/o\\/J| J/J*|
/|* /|  -/  | /|*-/|--/!|-/|*/|J|

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

실행하려면 프로그램 끝에 입력을 추가하십시오. Jimmy가 플랫폼에서 떨어지면 빈 문자열을, 그렇지 않으면 느낌표 문자열을 반환합니다.

  • /|/\/\//본 절의 |//코드 모두 짧고 더 판독한다 ( |각 여분을 구별하기 위해 사용된다)
  • /\/o\\/J| J/J*/지미 J를 간결하게 대신 하고 왼쪽의 공간을 *오른쪽으로 변경합니다.
  • 다음 교체는 줄 바꿈을 제거합니다.
  • /* /| -/ | //*플랫폼 왼쪽에 공간 과을 취소 합니다. 두 개 이상의 공백이 남아 있으면 Jimmy가 왼쪽으로 떨어지고 플랫폼이 삭제됩니다. 이 부분은 또한 플랫폼 오른쪽의 공백을 제거합니다.
  • /*-/|--/!/*플랫폼 길이와 함께 취소 합니다. -왼쪽에 두 개 이상이 있으면 Jimmy가 오른쪽으로 떨어지지 않으므로로 대체됩니다 !.
  • /-/|*/|J// 그렇지 않은 나머지 모든 문자를 삭제합니다 !


1

레티 나 0.8.2 , 16 바이트

 (.*¶).
$1
¶ ?--

온라인으로 사용해보십시오! 링크에는 테스트 스위트가 포함되어 있습니다. 설명:

+`^ (.*¶).
$1

첫 줄에 공백이 있고 두 줄에 둘 이상의 문자가 있으면 공백과 다음 줄의 첫 문자를 삭제하십시오. 참고 : Jimmy 다음에 후행 공백이 없다고 가정합니다. 후행 공백이 필요한 경우 +1 바이트가 필요합니다.

¶ ?--

Jimmy 아래에 플랫폼이 두 개 이상 있는지 확인하십시오.



1

루비 2.5.3, 44 바이트

->a,b{a.zip(b).map(&:join).grep(/\S-/).size>1}

두 개의 배열로 입력됩니다. 확실히 골프 친화적 인 접근 방식은 아니지만 (GB의 답변 참조)이 zip기능 을 사용하는 변명을 좋아합니다 .


1

PowerShell , 63..55 53 바이트

매지 덕분에 -1 바이트

param($j,$f)''+($f|% t*y|?{$j[$i++]-gt32})-match'- -'

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

입력을 두 줄로받습니다.

풀림 :

param($j,$f)            #Take $jimmy and $floor
''+                     #Implicitly converts next part to string
($f |% ToCharArray      #Convert $f to a char[] and...
    |?{                 #Only take the chars where...
        $j[$i++]-gt32   #The same indexed char in $j's ASCII # is > ' ' i.e. only get /o\
     }
)-match'- -'            #Arrays.ToString are joined with a space and we need 2 -'s

허. 나는 PowerShell을 훌륭한 골프 언어로 생각하지 않았지만 실제로 그렇게 나쁘지는 않다고 생각합니다.
connectcharger

@connectyourcharger 파이프 라인으로 꽤 깔끔한 작업을 수행 할 수 있지만 엉덩이에 큰 고통을주는 부분이 확실히 있습니다.
Veskah

나는 그 고통의 이유 때문에 그것을 배우려고 결코 신경 쓰지 않았습니다.
connectcharger



1

파이썬 3.7 , 71 56 바이트

lambda s:sum(j in'/o\\'and p=='-'for j,p in zip(*s))>1

매우 간단한 버전 이며이 방법을 사용할 수있는 가장 짧은 버전입니다. 입력s 은 두 개의 문자열, 첫 번째는 Jimmy-row, 두 번째는 플랫폼의 목록입니다. 서로 위에있는 문자를 압축 한 다음- 최소한 두 개의 인스턴스에서 Jimmy의 일부 아래에 .

편집 : 블루 덕분에 바이트가 상당히 줄었습니다!


1
안녕하세요, 코드 골프에 오신 것을 환영합니다! 몇 가지 사항 : 답변에 입력 형식을 지정하고 싶을 수도 있습니다 ( s지미와 플랫폼에 대한 두 가지 목록이 있어야합니다). 또한 바이트를 저장할 수있는 몇 가지 장소가 있습니다.리스트를 합산하는 대신 원시 반복자를 합산 할 수 있습니다 (괄호 제거). 확인하는 대신 확인 >=2하십시오 >1. 당신은 합계 수 TrueFalse1과 0처럼 경우 - 다른 사람에 대한 필요가 없습니다. 마지막으로, 같은 언어로 새 답변을 게시하기 전에 이전 답변을보고 개선 할 수 있는지 확인해야합니다.
Blue

@Blue 안녕하세요, 대단히 감사합니다! 그리고 그래, 나는 미래에 그것을 명심할 것이다. :)
Michael

1

쉐브론, 84 87 바이트

>^__>^j
^i<<0
^i<<^i+1
^h<^i>^j
->+2??^h=/
->-3
>^__>^p
^q<^i|2>^p
->+2??^q<--
><0
><1

이것은 내 자신이 만든 상당히 새로운 언어입니다. 프로토 타입 인터프리터, 문서 및 예제 프로그램은 https://github.com/superloach/chevron .

설명:

  • >^__>^j -지미를 TXT 입력으로 사용
  • ^i<<0 -인덱스를 0으로 초기화
  • ^i<<^i+1 -증분 색인
  • ^h<^i>^j -인덱스에서 지미의 캐릭터를 얻는다
  • ->+2??^h=/ -지미의 왼쪽 다리에서 루프 밖으로 뛰어
  • ->-3 -루프의 시작 부분으로 돌아 가기
  • >^__>^p -TXT 입력으로 플랫폼 사용
  • ^q<^i|2>^p -지미 아래에서 3자를 자릅니다.
  • ->+2??^q<-- -지미 아래에 두 개의 대시가 있으면 진실한 출구로 이동하십시오.
  • ><0 -허위 출구
  • ><1 -진실한 출구

내 코드가 단일 문자 플랫폼 사례를 처리하지 못한다는 것을 알고 있습니다. 업데이트 된 버전은 곧 편집됩니다.
Superloach



0

V , 18 바이트

0vt/"_dj.d3lVkp0#x

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

지미가 플랫폼에서 떨어지는 경우에만 공백을 출력하십시오. 지미가 플랫폼에 머무르면 공백이 아닌 것을 출력하십시오.


Vim에서 Ctrl 또는 Esc를 사용하지 않는 것은 재밌습니다.
tsh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.