버스는 합법적입니까?


15

나는 오늘 버스에 있었고이 표지판을 발견했습니다.

      seated    standing    wheelchairs
max1    37         30            00
max2    36         26            01
max3    34         32            00

착석 한 승객, 좌석 및 휠체어의 수는 모두 테이블에있는 열보다 크지 않아야합니다. (자세한 내용은 채팅을 참조하십시오.)

이 과제의 목적을 위해 우리는이 아이디어를 일반화 할 것입니다. 엄격하게 양의 길이 N (승객 유형 수)의 음이 아닌 정수 목록과 양의 차원의 음이 아닌 정수 행렬 (N 열 및 구성 당 한 행) , 또는이 값을 바꾼 경우) 어떤 구성 제한이 충족되는지를 나타내는 인덱스 / 거짓 거짓 / 두 고유 값 목록을 반환합니다.

예를 들어 위의 행렬 :
30,25,1[1](0- 인덱스) [2](1- 인덱스) 또는 [false,true,false](부울) 또는 ["Abe","Bob","Abe"](2 개의 고유 한 값) 등

다음 테스트 사례는 위의 매트릭스와 0/1을 false / true로 사용합니다.
[30,30,0][1,0,1]
[30,31,0][0,0,1]
[35,30,0][1,0,0]
[0,0,1][0,1,0]
[0,0,0][1,1,1]
[1,2,3][0,0,0]

다음 테스트 사례는 다음 매트릭스를 사용합니다.
1 2 0 4
2 3 0 2

[1,2,1,2][0,0]
[1,3,0,1][0,1]
[1,2,0,3][1,0]
[1,2,0,1][1,1]


나는이 문제를 오해하고 있는가 또는 수 [30,31,0][1, 1, 1]이에 의해 덮여 있기 때문에 max3?
Okx

진리 값 교환이 허용됩니까? (대신에 예를 들어 어떤 truthy 값 0과 대신에 어떤 falsy 하나 1?)
씨 Xcoder

@Okx 당신은 무언가를 오해하고 있습니다. [x,31,z]배제 max1하고 max2그들은 31 standees하지를 허용 않기 때문에.
Adám

@ Mr.Xcoder 일반적으로 이와 같은 도전에서 허용됩니까?
Adám

나는 이것을 기본적으로 허용 한다고 생각 했지만 ((2) 참조 ) (또한 Martin의 의견 참조 ) 메타 합의를 찾지 못했습니다. 나는 이 메타 질문게시하여 진행했으며 , 그 OP에 먼저 문의해야한다는 결론. 나는 보통 그것을 허용한다, 나는 그들이 교환되어서는 안되는 이유를 보지 못한다.
Mr. Xcoder

답변:







2

젤리 , 3 바이트

<Ẹ€

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

0= 참, 1= 거짓.


값을 구별 할 필요가 없다면 효과가 있을 것입니다
Mr. Xcoder

@ Mr.Xcoder 옵션이 여기에 있다고 생각하지 않습니다. 기다릴 것 같아요.
아웃 골퍼 에릭 17

허용 됩니다.
Mr. Xcoder

1
@ Mr.Xcoder 흠, 그것은 정확히 "거짓 거짓"이 아니라 오히려 "거짓 거짓"인 것 같습니다. 불행히도, 도전이 요구하는 것은 아닙니다.
아웃 골퍼 에릭 17

@ Mr.Xcoder Jelly가 필요합니다 .
Adám




2

레티 나 0.8.2 , 57 바이트

\d+
$*
;(?=.*;(.*))
;$1¶
%(+`,1*(1*)(;.*),\1$
$2
(1*);\1$

온라인으로 사용해보십시오! 링크에는 테스트 사례가 포함되지만 출력은 모두 함께 실행됩니다. 설명:

\d+
$*

단항으로 변환합니다.

;(?=.*;(.*))
;$1¶

행렬의 각 행에 자체 목록 사본을 제공하십시오.

%(

매트릭스의 각 행에서 별도로 작동하십시오.

+`,1*(1*)(;.*),\1$
$2

행과 목록의 마지막 수는 목록의 수보다 크지 만 행과 목록의 마지막 수는 반복해서 제거하십시오.

(1*);\1$

그런 다음 목록에 하나의 숫자가 남아 있어야하고 행의 숫자는 최소한 그 숫자보다 커야합니다.




1

05AB1E , 5 바이트

εs<›P

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

설명:

불행히도 05AB1E v1에는 또는 에 대한 1 문자가 내장되어 있지 않으므로 를 사용하기 전에 각 값을 줄 입니다. 현재 개발중인 05AB1E v2 에는 이러한 기본 제공 기능이 있습니다.

ε        # For-each row of the (implicitly input) matrix:
 s       #  Swap, so the (implicitly input) list is at the top of the stack
  <      #  Decrease every value in the input-list by 1
         #   i.e. [30,25,1] → [29,24,0]
        #  Check for each value in the matrix-row if they're larger
         #  than the input-list value at the same index
         #   i.e. [37,30,0] and [29,24,0] → [1,1,0]
    P    #  Then take the product of these checks
         #   i.e. [1,1,0] → 0

1

Stax , 8 바이트

â ╤┘µrφî

실행 및 디버깅

설명:

mx\{:vm|A Full program, unpacked, implicit input
m         Map over rows of the matrix:
 x\         Zip with input array
   {  m     Map over result:
    :v        Check if non-increasing, i.e. matrix element greater than or equal to array element
       |A   All.
            Implicit output


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