열파 감지


48

배경

로얄 네덜란드 기상 연구소는 열파 정의하는 일련의 *을 적어도 5 연속 ≥25 ℃로 날씨의 날 ( "여름 날씨")하도록 적어도 그 시절의 3 ≥30 °의 C이다 ( "열대 기후" ).

열대 날씨는 연속적으로 측정 할 필요가 없습니다. 예를 들어 30, 25, 30, 26, 27, 28, 32, 30열대 날씨는 4 일 동안 8 일 동안 지속되는 열파입니다.

* (네덜란드 표준에 따라)

도전

연속 일수에서 섭씨 온도 측정을 나타내는 양의 정수가 비어 있지 않은 목록이 제공되면 해당 목록에 열파가 포함되는지 여부를 결정하십시오 (위의 정의에 따라).

바이트 단위의 최단 답변이 이깁니다.

테스트 사례

팔시 :

[30]
[29, 29, 29, 47, 30]
[31, 29, 29, 28, 24, 23, 29, 29, 26, 27, 33, 20, 26, 26, 20, 30]
[23, 31, 29, 26, 30, 24, 29, 29, 25, 27, 24, 28, 22, 20, 34, 22, 32, 24, 33]
[23, 24, 25, 20, 24, 34, 28, 32, 22, 20, 24]
[24, 28, 21, 34, 34, 25, 24, 33, 23, 20, 32, 26, 29, 29, 25, 20, 30, 24, 23, 21, 27]
[26, 34, 21, 32, 32, 30, 32, 21, 34, 21, 34, 31, 23, 27, 26, 32]
[29, 24, 22, 27, 22, 25, 29, 26, 24, 24, 20, 25, 20, 20, 24, 20]
[23, 33, 22, 32, 30]
[28, 21, 22, 33, 22, 26, 30, 28, 26, 23, 31, 22, 31, 25, 27, 27, 25, 28]
[27, 23, 42, 23, 22, 28]
[25, 20, 30, 29, 32, 25, 22, 21, 31, 22, 23, 25, 22, 31, 23, 25, 33, 23]

진실한 :

[30, 29, 30, 29, 41]
[1, 1, 25, 30, 25, 30, 25, 25, 25, 25, 25, 25, 25, 25, 40, 1, 1]
[31, 34, 34, 20, 34, 28, 28, 23, 27, 31, 33, 34, 29, 24, 33, 32, 21, 34, 30, 21, 29, 22, 31, 23, 26, 32, 29, 32, 24, 27]
[26, 29, 22, 22, 31, 31, 27, 28, 32, 23, 33, 25, 31, 33, 34, 30, 23, 26, 21, 28, 32, 22, 30, 34, 26, 33, 20, 27, 33]
[20, 31, 20, 29, 29, 33, 34, 33, 20]
[25, 26, 34, 34, 41, 28, 32, 30, 34, 23, 26, 33, 30, 22, 30, 33, 24, 20, 27, 23, 30, 23, 34, 20, 23, 20, 33, 20, 28]
[34, 23, 31, 34, 34, 30, 29, 31, 29, 21, 25, 31, 30, 29, 29, 28, 21, 29, 33, 25, 24, 30]
[22, 31, 23, 23, 26, 21, 22, 20, 20, 28, 24, 28, 25, 31, 31, 26, 33, 31, 27, 29, 30, 30]
[26, 29, 25, 30, 32, 28, 26, 26, 33, 20, 21, 32, 28, 28, 20, 34, 34]
[34, 33, 29, 26, 34, 32, 27, 26, 22]
[30, 31, 23, 21, 30, 27, 32, 30, 34, 29, 21, 31, 31, 31, 32, 27, 30, 26, 21, 34, 29, 33, 24, 24, 32, 27, 32]
[25, 33, 33, 25, 24, 27, 34, 31, 29, 31, 27, 23]

2
온도가 섭씨 100도 이하로 보장됩니까?
FryAmTheEggman

3
@FryAmTheEggman 글쎄, 네덜란드에서는, 예 :), 그러나 나는 당신의 대답 이이 사실을 남용하기를 원하지 않습니다.
Lynn

1
@HatWizard 예, 괜찮습니다. 예를 들어 "충돌 / 충돌하지 않음"도 좋습니다.
Lynn

2
안녕하세요 @Lynn 이것은 큰 도전이었고 여전히 :-)
롤랜드 슈미츠

1
@RolandSchmitz 감사합니다! 나는 도전의 생애에 너무 늦게 나온 창조적 인 답변에 매우 놀랐습니다. 🎉
Lynn

답변:



19

젤리 , 15 바이트

:5_5Ṡ‘ẆP«LƊ€>4Ṁ

1열파가 감지 된 경우 반환 되는 숫자 목록을 허용하는 모나드 링크 0.

온라인으로 사용해보십시오! 또는 테스트 스위트를 참조하십시오.

어떻게?

기준은 25보다 크거나 같은 4 개 이상의 값의 런이 존재하며,이 중 2보다 크거나 같은 값은 30보다 크거나 같아야합니다.

5로 나누면 기준이 5보다 크거나 같은 4 개 이상의 값이있는 런의 존재가되며, 그 중 2 이상은 6보다 크거나 같아야합니다.

이 값에서 5를 빼면 기준이 0보다 크거나 같은 4 개 이상의 값이있는 런이 존재하며, 그 중 2보다 크거나 같은 값은 1보다 크거나 같아야합니다.

이 값의 부호를 취하면 (-1, 0 또는 1을 얻음) 기준은 -1과 같지 않은 4 개 이상의 값이있는 런의 존재가되며,이 중 2 이상은 1이어야합니다.

이 값에 1을 더하면 (0, 1 또는 2를 얻음) 기준은 0이 아닌 4 개 이상의 값이있는 런의 존재가되며,이 중 2 이상은 2와 같아야합니다.

0을 포함하는 목록의 곱은 0이고 둘 이상의 2를 포함하는 목록 (및 나머지는 1)의 곱은 4보다 큽니다. 이는이 조정 된 목록의 기준이 제품의 최소값과 길이가 4보다 크다는 것을 의미합니다.

:5_5Ṡ‘ẆP«LƊ€>4Ṁ - Link: list of numbers
:5              - integer divide by five (vectorises)
  _5            - subtract five (vectorises)
    Ṡ           - sign {negatives:-1, zero:0, positives:1} (vectorises)
     ‘          - increment (vectorises)
      Ẇ         - all sublists
          Ɗ€    - last three links as a monad for €ach:
       P        -   product
         L      -   length
        «       -   minimum
            >4  - greater than four? (vectorises) -- 1 if so, else 0
              Ṁ - maximum -- 1 if any are 1, else 0


9

C (클랑) , 64 바이트

h;o(*t){for(h=1;*t;++t)h=h&&*t<25?1:h*(*t<30?2:6)%864;return!h;}

o () 함수는 열파에 대해 1을, 그렇지 않으면 0을 반환합니다.

그들의 아이디어를위한 마법 번호 864와 Udo Borkowski 와 Mathis에게 감사합니다 .

작동하면 어떻게됩니까? 각 숫자 시퀀스는 감소 값 1에서 시작하는 감소 연산으로 반복됩니다. 숫자> = 25가 표시되면 감소에 2를 곱한 것입니다. 숫자> = 30이 표시되면 감소에 2를 곱하고 3 = 6. 숫자 <25가 표시되면 감소는 1에서 다시 시작합니다. 감소를 864 = 2 * 2 * 2 * 2 * 2 * 3 * 3 * 3으로 나눌 수 있으면 열파가 발견되고 모듈로 연산은 0이며 감소 값은 0이고 반환 값은 true입니다.

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


PPCG에 오신 것을 환영합니다.
Muhammad Salman

PPCG에 오신 것을 환영합니다! 테스트 케이스 스위트로 완성 된 아주 좋은 첫 번째 답변! 마법을 이해하도록 설명을 추가해 주시겠습니까?
JayCe

정말 훌륭한 솔루션입니다. :)
Lynn


7

APL (Dyalog Classic) , 21 20 바이트

184↓⍉×\25 30⍸↑,⍨\⎕

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

사용 ⎕io←1

25 30⍸x x <25이면 0, 25≤x <30이면 1, 그렇지 않으면 2

우리는 가능한 모든 위치에서 시작하여 (또는 동등하게 끝나는) 누적 제품을 계산하고 처음 4 개의 제품을 버리고 ≥8 (2 3 ) 의 제품 존재를 감지합니다.


6

Japt , 19 18 바이트

ô<25 d_ʨ5©3§Zè¨30
ô                  // Partition the input at every item
 <25               // where the value is less than 25.
     d_            // Then, return whether any resulting subarray
       ʨ5         // is at least five items long
          ©        // and
           3§      // has at least three items
             Zè¨30 // with a value of at least 30.

의견에 대한 모든 토론이 올바르게 이루어지기를 바랍니다. Shaggy
덕분에 1 바이트를 줄 였습니다.

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


나는 그것을 통해 읽을 때 더 짧게 작동하지만 18 바이트 만 관리 할 수 ​​있다고 생각했습니다 .
Shaggy

@Shaggy 나도 그렇게 생각했지만 더 짧은 버전을 찾을 수 없었습니다. 포인터 주셔서 감사합니다!
Nit

1
우리가 지금 당장이기는 것 같습니다 :)
Shaggy

비 ASCII 문자는 여러 바이트로 계산되지 않습니까?
sudo

1
@sudo이 기호는 모두 1 바이트입니다. 예를 들어, 3 바이트이지만 ¨1 바이트입니다. 위에서 사용 된 기호는 모두 단일 바이트이기 때문에 골프 언어에 맞게 선택되었습니다.
Nit

5

PowerShell , 121 바이트

param($a)$b="";($a|%{if($_-ge25){$b+="$_ "}else{$b;$b=""}})+$b|?{(-split$_).count-ge5-and(-split$_|?{$_-ge30}).count-ge3}

온라인으로 사용해보십시오! 또는 모든 테스트 사례를 확인

PowerShell은 (A)의 등가 없다 .some거나 .every등을, 그래서 손으로 압연된다.

$a정수 배열로 입력 을받습니다. 도우미 변수 $b를 빈 문자열로 설정하십시오 . 그런 다음의 모든 정수를 반복합니다 $a. 루프 내에서 정수가 -greaterthanor equal 25$b경우 잠재적 인 string에 추가하고 그렇지 않으면 $b파이프 라인에 놓고 빈 문자열로 설정하십시오.

루프 외부에서 파이프 라인 결과를로 배열 연결하고 절을 $b통해 넣습니다 . 이렇게하면 요소 길이 (공백 분할 기준)와보다 큰 temp 수가있는 문자열 이 제거 됩니다. 이 문자열은 파이프 라인에 남아 있으므로 진실 된 값은 비어 있지 않습니다 (진실 / 거짓 구분에 대해서는 "모든 테스트 사례 확인"링크 참조).Where-Object|?{...}-ge530-ge3


사용하려고 $args 대신 param($a)$a
mazzy

-2 바이트...{$a=-split$_;$a.count-ge5-and($a|?{$_-ge30}).count-ge3}
mazzy

배열이있는 109 바이트 저장 $args|%{if($_-ge25){$b+=$_}else{,$b;$b=@()}}-E{,$b}-B{,($b=@())}|?{$_.count-ge5-and($_|?{$_-ge30}).count-ge3}으로 get-heatWave.ps1. 테스트 스크립트 regex101.com/r/lXdvIs/2
mazzy

103 바이트$b=@();$args|%{if($_-ge25){$b+=$_}else{,$b;$b=@()}}-E{,$b}|?{$_.count-ge5-and($_|?{$_-ge30}).count-ge3}
11

무엇을 -E합니까? 나는 그것에 익숙하지 않다.
AdmBorkBork 2016 년

5

젤리 , 17 16 바이트

:5_5Ṡṣ-ḤS«LƊ€Ṁ>4

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

작동 원리

:5_5Ṡṣ-ḤS«LƊ€Ṁ>4  Main link. Argument: T (array of temperatures)

:5                Divide each item of T by 5 (integer division).
  _5              Subtract 5 from each quotient.
    Ṡ             Take the signs.
                  This maps (-oo,25) to -1, [25,30) to 0, and [30,+oo) to 1.
     ṣ-           Split at occurrences of -1.
       Ḥ          Double, replacing 1's with 2's.
           Ɗ€     Map the three links to the left over each chunk.
        S             Take the sum.
          L           Take the length.
         «            Take the minimum of the results.
             Ṁ    Take the maximum.
              >4  Test if it's larger than 4.
                  Note that the sum is larger than 4 if and only if there are more
                 than two 2's, which correspond to temperatures in [30,+oo).



4

05AB1E , 20 바이트

Œʒ24›DPsO4›*}29›O2›Z

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

설명

Π                    # push sublists of input
 ʒ          }         # filter, keep the lists where:
           *          # the product of:
     DP               # the product and
       sO4›           # the sum compared using greater-than to 4
  24›                 # for the elements greater than 24
                      # is true
                      # the result is:
                   Z  # the maximum from the remaining lists where
                O     # the sum of 
             29›      # the elements greater than 29
                 2›   # is greater than 2

4

배치, 119 바이트

@set h=0
@for %%t in (0 %*)do @if %%t lss 25 (set/as=5,t=3)else set/a"t+=!!t*(29-%%t)>>9,s-=!!s,h+=!(s+t+h)
@echo %h%

명령 줄 인수로 입력을 취하고, 그렇지 않으면 0 인 열파에 대해 1을 출력합니다.


4

파이썬 , 67 바이트

f=lambda l:l>l[:4]and(min(l)>24<sorted(l)[~2]-5)|f(l[1:])|f(l[:-1])

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

기하 급수적으로 증가하여 더 긴 테스트 케이스에서 시간이 초과됩니다. 첫 번째 또는 마지막 요소를 반복적으로 잘라내어 연속 된 하위 목록을 찾습니다. 3 일 이상 30 ° C 이상인 경우는 세 번째로 큰 값을 확인하여 확인하십시오 sorted(l)[~2]. 기본 사례는 진실 / 거짓을 이용하거나 오류로 종료함으로써 더 짧을 수 있습니다.




4

APL (Dyalog Unicode) , 29 바이트

∨/(5≤≢¨a)∧3≤+/30≤↑ae⊆⍨25e←⎕

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

∨/거기에 어떤 요소가되도록

(5≤≢¨a)5 < 각 시리즈의 일 수 집계 ( a가능한 모든 시리즈 일 수 있음)

3≤+/30≤3 ≤ +/30 인치 이상인 총 요소 수

↑a← 에 의해 형성된 행렬

e⊆⍨25≤e←⎕ ≥ 25 인 일련의 연속 요소


첫 번째 테스트는 불필요하게 주석 처리됩니다-작동합니다.
ngn

@ngn 수정 해 주셔서 감사합니다.
Kritixi Lithos

4

코 틀린 , 57 바이트

{var r=1;it.any{r*=2;if(it>29)r*=3;if(it<25)r=1;r%864<1}}

(-1 명시 적 매개 변수 v-> 를 내재적 매개 변수 it 으로 대체하여 바이트 )

{var r=1;it.any{v->r*=2;if(v>29)r*=3;if(v<25)r=1;r%864<1}}

( 루비 솔루션에서 GB 로 표시되는 any {} 연산을 사용하는 16 바이트 )

{it.stream().reduce(1){r,v->if(r*25>r*v)1 else(r*if(v<30)2 else 6)%864}<1}

(-1 바이트 덕분에 Lynn : r> 0 & v <25를 r * 25> r * v로 대체)

{it.stream().reduce(1){r,v->if(r>0&&v<25)1 else(r*if(v<30)2 else 6)%864}<1}

이 람다 식은 List를 가져와 열파에 대해 true를 반환하고 그렇지 않으면 false를 반환합니다.

그들의 아이디어를위한 마법 번호 864와 Udo Borkowski 와 Mathis에게 감사합니다 .

작동하면 어떻게됩니까? 각 숫자 시퀀스는 감소 값 1에서 시작 하는 any {} 연산으로 반복 됩니다. 숫자가 30보다 크거나 같은 경우 감소에 2를 곱하고 3 (2 * 3 = 6)을 곱합니다. 숫자 <25 감소가 1에서 다시 시작되는 것을 볼 수 있습니다. 감소가 864 = 2 * 2 * 2 * 2 * 2 * 3 * 3 * 3으로 나눌 수 있으면 열파가 발견되고 모듈로 연산의 결과는 0이됩니다. any {} 연산 에서 호출 된 내부 람다 의 true 반환 값은 반복을 중지하고 true 값을 반환합니다.

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


좋은 설명 :)
JayCe

바이트 수는 함수 본문뿐만 아니라 함수 선언 전체를 반영해야한다고 생각합니다. 지금처럼 스 니펫 인 것 같습니다.
Jonathan Frech 2016 년

@ jonathan-frech, Java에서와 같이 선택 사항이 아닌 중괄호를 포함하여 함수 본문을 약간 더 긴 람다 식으로 변경했습니다. 이건 공정한가요?
Roland Schmitz

@RolandSchmitz 다른 Kotlin 제출 및 Java 람다 함수 제출을 보면 함수 선언 바이트 수를 포함하지 않는 것이 허용됩니다. 원래 제출이 유효 할 가능성이 높습니다. 내 의견에 대해 유감스럽게도 유형 선언이없는 유효한 언어 구조가 아니기 때문에 매우 발췌가되는 것으로 보았을 때 이상하게 보였습니다.
Jonathan Frech

3

Wonder , 34 바이트

(/>@(& <2!> '<29#0)*> '<24#0).cns5

사용 예 :

((/>@(& <2!> '<29#0)*> '<24#0).cns5) [25 33 33 25 24 27 34 31 29 31 27 23]

설명

자세한 버전 :

(some x\\(and <2 (fltr <29) x) (every <24) x) . (cns 5)

5 개의 연속 항목이 겹치는 시퀀스를 취한 다음 시퀀스의 모든 항목이 25보다 큰 항목과 2보다 큰 항목이 30보다 큰지 확인하십시오.


이봐, 이것은 관련이 없지만 귀하의 웹 사이트의 페이스 북 링크가 죽었습니다.
mbomb007


3

Stax , 23 바이트

Æ7)║▄░Ä╟═╙hⁿ╧\ßY8÷K▌µ½x

staxlang.xyz에서 실행하고 디버그하십시오! 실행하는 데 시간이 오래 걸리므로 자동 실행을 비활성화했습니다.

압축 해제 (28 바이트) 및 설명

:efc%4>nc{24>f=a{29>f%2>|&|&
:e                              Set of all contiguous subarrays
  f                             Filter, using the rest of the program as a predicate:
   c                              Copy subarray on the stack
    %4>                           Five or more elements?
                        |&        AND
       nc                         Copy subarray twice to top
         {   f                    Filter:
          24>                       Greater than 24?
              =                   Equals the original subarray?
                          |&      AND
               a                  Move subarray to top
                {   f             Filter:
                 29>                Greater than 30?
                     %2>          Length greater than two?
                                  Implicit print if all three conditions are met

열파로 계산할 수있는 모든 하위 배열을 인쇄하며, 존재하지 않는 경우에만 허위입니다.



3

껍질 , 19 바이트

Vo≥3#≥30fo≥5Lġ(±≥25

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

필터 ( f)를 사용 하면 논리적으로 검사를 사용하는& 것보다 1 바이트가 짧고 ( ) 또한 ±비용이 많이 드는 2 바이트를 제거하는 것이 좋습니다.

설명

V(≥3#≥30)f(≥5L)ġ(±≥25)  -- example input: [12,25,26,27,28,29,18,24,32]
               ġ(    )  -- group by
                ( ≥25)  -- | greater or equal to 25: [0,1,2,3,4,5,6,0,0,8]
                (±   )  -- | sign: [0,1,1,1,1,1,1,0,0,1]
                        -- : [[12],[25,26,27,28,29,30],[18,24],[32]]
         f(   )         -- filter by
          (  L)         -- | length: [1,6,2,1]
          (≥5 )         -- | greater or equal to 5: [0,2,0,0]
                        -- : [[25,26,27,28,29,30]]
V(      )               -- does any element satisfy
 (  #   )               -- | count occurences where
 (   ≥30)               -- | | elements greater or equal to 30
 (      )               -- | : [1]
 (≥3    )               -- | greater or equal to 3: [0]
                        -- : 0


3

R , 111 93 71 67 66 바이트

!Reduce(function(i,j)"if"(j<25,!!i,(i*(2+4*!j<30))%%864),scan(),1)

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

롤랜드 슈미츠의 부끄러운 항구 답변 . 롤랜드 덕분에 -4 바이트, 주세페 덕분에 -1 바이트.

TIO는 기능 버전에 연결됩니다.

이전 버전 rle은 주세페 덕분에 연속 25 일 이상 추출 하여 무려 18 바이트를 절약했습니다!


F대신에 를 사용 하면 6 바이트를 저장하기 위해 돌아와서 돌아갈 T수 있습니다 . 또한 불필요한 괄호 쌍이 있지만 어쨌든 다른 바이트를 절약 할 수 있다고 생각합니다 .F=F|"if"(cond,(expr),0)F(1-z[i]):01-z[i]:1
Giuseppe

^ 다른 아이디어가 생겼을 때 위의 의견을 제출하려고했는데 100 바이트 이하의 솔루션을 찾았습니다! 그건 function(x,z=rle(x>24)$l){for(i in 1:sum(z|1))F=F|z[i]>4&sum(x[sum(z[1:i])+1-z[i]:1]>29)>2;F}때로는 unprintables이에 ... 크리프 있기 때문에 TIO에 PPCG에서 조심 붙여 넣기를 할 수
주세페

이건 끝내줘! Jonathan Allan의 수학을 활용하는 더 짧은 방법이있을 것입니다.
JayCe

내부 부분을 (i * 2 * (1+ (2 * (j> 29))))에서 (i * (2 + 4 * (j> 29))로 단순화하면 더 많은 바이트를 절약 할 수 있습니다. ))
Roland Schmitz

@RolandSchmitz 매우 사실입니다!
JayCe

3

스위프트 4 , 50 바이트

{$0.reduce(1){$0>0&&$1<25 ?1:$0*($1<30 ?2:6)%864}}

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

클로저 식은 열파에 대해 0을 반환하고 그렇지 않으면> 0을 반환합니다.

Roland Schmitz 및 Mathis 와 공동으로 제작되었습니다 .

작동하면 어떻게됩니까? 각 숫자 시퀀스는 감소 값 1에서 시작하는 감소 연산으로 반복됩니다. 숫자> = 25가 표시되면 감소에 2를 곱한 것입니다. 숫자> = 30이 표시되면 감소에 2를 곱하고 3 = 6. 숫자 <25가 표시되면 감소는 1에서 다시 시작합니다. 감소를 864 = 2 * 2 * 2 * 2 * 2 * 3 * 3 * 3으로 나눌 수 있으면 열파가 발견되고 모듈로 연산은 0이며 감소 값은 0입니다. 열파가 발견 된 경우에만 감소가 0이 될 수 있습니다. 감소 값이 0이면 모든 향후 감소, 즉 최종 결과에 대해 0이됩니다.


3

파이썬 2 , 66 63 바이트

lambda a:reduce(lambda b,c:(b*(6,2)[c<30]%864,1)[b*25>b*c],a,1)

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

Lynn 덕분에 -3 바이트

작동하면 어떻게됩니까? 각 숫자 시퀀스는 감소 값 1에서 시작하는 감소 연산으로 반복됩니다. 숫자> = 25가 표시되면 감소에 2를 곱한 것입니다. 숫자> = 30이 표시되면 감소에 2를 곱하고 3 = 6. 숫자 <25가 표시되면 감소는 1에서 다시 시작합니다. 감소를 864 = 2 * 2 * 2 * 2 * 2 * 3 * 3 * 3으로 나눌 수 있으면 열파가 발견되고 모듈로 연산은 0이며 감소 값은 0입니다. 열파가 발견 된 경우에만 감소가 0이 될 수 있습니다. 감소 값이 0이면 모든 향후 감소, 즉 최종 결과에 대해 0이됩니다.

더 읽기 쉽지만 더 긴 버전은 다음과 같습니다.

lambda a:reduce((lambda b,c: 1 if b>0 and c<25 else b*(2 if c<30 else 6)%864), a, 1)

여분의 공간 / 괄호를 제거 및 교체 x if cond else y에 의한 것은 (y,x)[cond]준다

lambda a:reduce(lambda b,c:(b*(6,2)[c<30]%864,1)[b>0and c<25],a,1)

Lynn은 상태를 단축 할 것을 제안했습니다 b>0and c<25.

b>0and c<25-> b*25>0 and b*c<b*25-> b*25>0 and b*25>b*c->b*25>b*c

~를 야기하는

lambda a:reduce(lambda b,c:(b*(6,2)[c<30]%864,1)[b*25>b*c],a,1)

수입 명세서도 포함시켜야합니다 :)
Muhammad Salman

1
당신은 실제로에서 감소 가져올 필요가 없습니다 functools, 그건 내장 파이썬 2 !
Lynn

1
b*25>b*c3 바이트를 확인 하고 저장할 수 있습니다 . 이것은 다른 언어로이 접근법을 취하는 많은 솔루션에 적용될 수 있습니다 :)
Lynn

@Lynn 많은 감사합니다. 그에 따라 솔루션을 업데이트했습니다.
Udo Borkowski 2016 년

2

Pyth, 23 바이트

f&glT5&>T]25gePPT30SM.:

여기 사용해보십시오

f&glT5&>T]25gePPT30SM.:
f                  SM.:Q   Get the sorted subsequences of the (implicit) input...
 &qlT5                     ... with at least 5 elements...
      &>T]25               ... all at least 25...
            gePPT30        ... where the third to last is at least 30.


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